/**
 * The MIT License (MIT)
 *
 * Copyright (c) 2018-2019 Erik Moqvist
 *
 * Permission is hereby granted, free of charge, to any person
 * obtaining a copy of this software and associated documentation
 * files (the "Software"), to deal in the Software without
 * restriction, including without limitation the rights to use, copy,
 * modify, merge, publish, distribute, sublicense, and/or sell copies
 * of the Software, and to permit persons to whom the Software is
 * furnished to do so, subject to the following conditions:
 *
 * The above copyright notice and this permission notice shall be
 * included in all copies or substantial portions of the Software.
 *
 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
 * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
 * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
 * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS
 * BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN
 * ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
 * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
 * SOFTWARE.
 */

/**
 * This file was generated by cantools version 39.4.5 Tue Mar 12 14:27:18 2024.
 */

#ifndef MC1_FMR_H
#define MC1_FMR_H

#ifdef __cplusplus
extern "C" {
#endif

#include <stdint.h>
#include <stdbool.h>
#include <stddef.h>

#ifndef EINVAL
#    define EINVAL 22
#endif

/* Frame ids. */
#define MC1_FMR_RS_OBJ_00_PART04_FRAME_ID (0x65du)
#define MC1_FMR_RS_OBJ_FD_FRAME_ID (0x6ebu)
#define MC1_FMR_RS_DETANDOBJ_COUNT_FRAME_ID (0x551u)
#define MC1_FMR_DIAG_REQ_FRAME_ID (0x791u)
#define MC1_FMR_DIAG_RESP_FRAME_ID (0x799u)
#define MC1_FMR_RS_STATUS_FRAME_ID (0x550u)
#define MC1_FMR_NWM_RS_FRAME_ID (0x432u)
#define MC1_FMR_FUNC_DIAG_REQ_FRAME_ID (0x7dfu)
#define MC1_FMR_VCU_MODE_CONTROL_FRAME_ID (0x165u)
#define MC1_FMR_YRS1_FRAME_ID (0x130u)
#define MC1_FMR_YRS2_FRAME_ID (0x131u)
#define MC1_FMR_SAS_STATUS_FRAME_ID (0xe0u)
#define MC1_FMR_ESC_STATUS_FRAME_ID (0x125u)
#define MC1_FMR_TCU_STATUS_FRAME_ID (0x113u)
#define MC1_FMR_RS_OBJ_00_PART01_FRAME_ID (0x65au)
#define MC1_FMR_RS_OBJ_00_PART02_FRAME_ID (0x65bu)
#define MC1_FMR_RS_OBJ_00_PART03_FRAME_ID (0x65cu)

/* Frame lengths in bytes. */
#define MC1_FMR_RS_OBJ_00_PART04_LENGTH (8u)
#define MC1_FMR_RS_OBJ_FD_LENGTH (64u)
#define MC1_FMR_RS_DETANDOBJ_COUNT_LENGTH (8u)
#define MC1_FMR_DIAG_REQ_LENGTH (8u)
#define MC1_FMR_DIAG_RESP_LENGTH (8u)
#define MC1_FMR_RS_STATUS_LENGTH (8u)
#define MC1_FMR_NWM_RS_LENGTH (8u)
#define MC1_FMR_FUNC_DIAG_REQ_LENGTH (8u)
#define MC1_FMR_VCU_MODE_CONTROL_LENGTH (8u)
#define MC1_FMR_YRS1_LENGTH (8u)
#define MC1_FMR_YRS2_LENGTH (8u)
#define MC1_FMR_SAS_STATUS_LENGTH (8u)
#define MC1_FMR_ESC_STATUS_LENGTH (8u)
#define MC1_FMR_TCU_STATUS_LENGTH (8u)
#define MC1_FMR_RS_OBJ_00_PART01_LENGTH (8u)
#define MC1_FMR_RS_OBJ_00_PART02_LENGTH (8u)
#define MC1_FMR_RS_OBJ_00_PART03_LENGTH (8u)

/* Extended or standard frame types. */
#define MC1_FMR_RS_OBJ_00_PART04_IS_EXTENDED (0)
#define MC1_FMR_RS_OBJ_FD_IS_EXTENDED (0)
#define MC1_FMR_RS_DETANDOBJ_COUNT_IS_EXTENDED (0)
#define MC1_FMR_DIAG_REQ_IS_EXTENDED (0)
#define MC1_FMR_DIAG_RESP_IS_EXTENDED (0)
#define MC1_FMR_RS_STATUS_IS_EXTENDED (0)
#define MC1_FMR_NWM_RS_IS_EXTENDED (0)
#define MC1_FMR_FUNC_DIAG_REQ_IS_EXTENDED (0)
#define MC1_FMR_VCU_MODE_CONTROL_IS_EXTENDED (0)
#define MC1_FMR_YRS1_IS_EXTENDED (0)
#define MC1_FMR_YRS2_IS_EXTENDED (0)
#define MC1_FMR_SAS_STATUS_IS_EXTENDED (0)
#define MC1_FMR_ESC_STATUS_IS_EXTENDED (0)
#define MC1_FMR_TCU_STATUS_IS_EXTENDED (0)
#define MC1_FMR_RS_OBJ_00_PART01_IS_EXTENDED (0)
#define MC1_FMR_RS_OBJ_00_PART02_IS_EXTENDED (0)
#define MC1_FMR_RS_OBJ_00_PART03_IS_EXTENDED (0)

/* Frame cycle times in milliseconds. */
#define MC1_FMR_RS_OBJ_00_PART04_CYCLE_TIME_MS (50u)
#define MC1_FMR_RS_STATUS_CYCLE_TIME_MS (50u)
#define MC1_FMR_VCU_MODE_CONTROL_CYCLE_TIME_MS (20u)
#define MC1_FMR_YRS1_CYCLE_TIME_MS (20u)
#define MC1_FMR_YRS2_CYCLE_TIME_MS (20u)
#define MC1_FMR_SAS_STATUS_CYCLE_TIME_MS (10u)
#define MC1_FMR_ESC_STATUS_CYCLE_TIME_MS (20u)
#define MC1_FMR_TCU_STATUS_CYCLE_TIME_MS (20u)
#define MC1_FMR_RS_OBJ_00_PART01_CYCLE_TIME_MS (50u)
#define MC1_FMR_RS_OBJ_00_PART02_CYCLE_TIME_MS (50u)
#define MC1_FMR_RS_OBJ_00_PART03_CYCLE_TIME_MS (50u)

/* Signal choices. */
#define MC1_FMR_RS_OBJ_FD_RS_OBJ00_ID_INVALID_CHOICE (8191u)

#define MC1_FMR_RS_OBJ_FD_RS_OBJ00_MOTION_PATTERN_UNKNOWN_CHOICE (0u)
#define MC1_FMR_RS_OBJ_FD_RS_OBJ00_MOTION_PATTERN_STATIONARY_CHOICE (1u)
#define MC1_FMR_RS_OBJ_FD_RS_OBJ00_MOTION_PATTERN_STOPPED_CHOICE (2u)
#define MC1_FMR_RS_OBJ_FD_RS_OBJ00_MOTION_PATTERN_MOVING_CHOICE (3u)
#define MC1_FMR_RS_OBJ_FD_RS_OBJ00_MOTION_PATTERN_RESERVED_4_CHOICE (4u)
#define MC1_FMR_RS_OBJ_FD_RS_OBJ00_MOTION_PATTERN_RESERVED_5_CHOICE (5u)
#define MC1_FMR_RS_OBJ_FD_RS_OBJ00_MOTION_PATTERN_RESERVED_6_CHOICE (6u)
#define MC1_FMR_RS_OBJ_FD_RS_OBJ00_MOTION_PATTERN_RESERVED_7_CHOICE (7u)

#define MC1_FMR_RS_OBJ_FD_RS_OBJ00_ELEV_CLASS_UNKNOW_CHOICE (0u)
#define MC1_FMR_RS_OBJ_FD_RS_OBJ00_ELEV_CLASS_UNDERRUNNABLE_CHOICE (1u)
#define MC1_FMR_RS_OBJ_FD_RS_OBJ00_ELEV_CLASS_OVERRIDABLE_CHOICE (2u)
#define MC1_FMR_RS_OBJ_FD_RS_OBJ00_ELEV_CLASS_RELEVANT_CHOICE (3u)

#define MC1_FMR_RS_OBJ_FD_RS_OBJ00_ELEV_CONF_NO__QUALITY_CHOICE (0u)
#define MC1_FMR_RS_OBJ_FD_RS_OBJ00_ELEV_CONF_LOW__QUALITY_CHOICE (1u)
#define MC1_FMR_RS_OBJ_FD_RS_OBJ00_ELEV_CONF_MEDIUM__QUALITY_CHOICE (2u)
#define MC1_FMR_RS_OBJ_FD_RS_OBJ00_ELEV_CONF_HIGH__QUALITY_CHOICE (3u)

#define MC1_FMR_RS_OBJ_FD_RS_OBJ00_TYPE_UNKNOWN_CHOICE (0u)
#define MC1_FMR_RS_OBJ_FD_RS_OBJ00_TYPE_4_WHEELER_CHOICE (1u)
#define MC1_FMR_RS_OBJ_FD_RS_OBJ00_TYPE_2_WHEELER_CHOICE (2u)
#define MC1_FMR_RS_OBJ_FD_RS_OBJ00_TYPE_PEDESTRIAN_CHOICE (3u)

#define MC1_FMR_RS_OBJ_FD_RS_OBJ00_VALID_FLAG_OBJECT_INVALID_CHOICE (0u)
#define MC1_FMR_RS_OBJ_FD_RS_OBJ00_VALID_FLAG_OBJECT_VALID_CHOICE (1u)

#define MC1_FMR_RS_OBJ_FD_RS_OBJ00_MEAS_FLAG_OBJECT_MEASURED_IN_THIS_CYCLE_CHOICE (0u)
#define MC1_FMR_RS_OBJ_FD_RS_OBJ00_MEAS_FLAG_OBJ_EXTRAPOLATED_IN_THIS_CYCLE_CHOICE (1u)

#define MC1_FMR_RS_OBJ_FD_RS_OBJ00_CTRK_IND_STATIONARY_TRACKER_CHOICE (0u)
#define MC1_FMR_RS_OBJ_FD_RS_OBJ00_CTRK_IND_CLUSTER_TRACKER_CHOICE (1u)

#define MC1_FMR_RS_OBJ_FD_RS_OBJ01_ID_INVALID_CHOICE (8191u)

#define MC1_FMR_RS_OBJ_FD_RS_OBJ01_MOTION_PATTERN_UNKNOWN_CHOICE (0u)
#define MC1_FMR_RS_OBJ_FD_RS_OBJ01_MOTION_PATTERN_STATIONARY_CHOICE (1u)
#define MC1_FMR_RS_OBJ_FD_RS_OBJ01_MOTION_PATTERN_STOPPED_CHOICE (2u)
#define MC1_FMR_RS_OBJ_FD_RS_OBJ01_MOTION_PATTERN_MOVING_CHOICE (3u)
#define MC1_FMR_RS_OBJ_FD_RS_OBJ01_MOTION_PATTERN_RESERVED_4_CHOICE (4u)
#define MC1_FMR_RS_OBJ_FD_RS_OBJ01_MOTION_PATTERN_RESERVED_5_CHOICE (5u)
#define MC1_FMR_RS_OBJ_FD_RS_OBJ01_MOTION_PATTERN_RESERVED_6_CHOICE (6u)
#define MC1_FMR_RS_OBJ_FD_RS_OBJ01_MOTION_PATTERN_RESERVED_7_CHOICE (7u)

#define MC1_FMR_RS_OBJ_FD_RS_OBJ01_ELEV_CLASS_UNKNOW_CHOICE (0u)
#define MC1_FMR_RS_OBJ_FD_RS_OBJ01_ELEV_CLASS_UNDERRUNNABLE_CHOICE (1u)
#define MC1_FMR_RS_OBJ_FD_RS_OBJ01_ELEV_CLASS_OVERRIDABLE_CHOICE (2u)
#define MC1_FMR_RS_OBJ_FD_RS_OBJ01_ELEV_CLASS_RELEVANT_CHOICE (3u)

#define MC1_FMR_RS_OBJ_FD_RS_OBJ01_ELEV_CONF_NO__QUALITY_CHOICE (0u)
#define MC1_FMR_RS_OBJ_FD_RS_OBJ01_ELEV_CONF_LOW__QUALITY_CHOICE (1u)
#define MC1_FMR_RS_OBJ_FD_RS_OBJ01_ELEV_CONF_MEDIUM__QUALITY_CHOICE (2u)
#define MC1_FMR_RS_OBJ_FD_RS_OBJ01_ELEV_CONF_HIGH__QUALITY_CHOICE (3u)

#define MC1_FMR_RS_OBJ_FD_RS_OBJ01_TYPE_UNKNOWN_CHOICE (0u)
#define MC1_FMR_RS_OBJ_FD_RS_OBJ01_TYPE_4_WHEELER_CHOICE (1u)
#define MC1_FMR_RS_OBJ_FD_RS_OBJ01_TYPE_2_WHEELER_CHOICE (2u)
#define MC1_FMR_RS_OBJ_FD_RS_OBJ01_TYPE_PEDESTRIAN_CHOICE (3u)

#define MC1_FMR_RS_OBJ_FD_RS_OBJ01_VALID_FLAG_OBJECT_INVALID_CHOICE (0u)
#define MC1_FMR_RS_OBJ_FD_RS_OBJ01_VALID_FLAG_OBJECT_VALID_CHOICE (1u)

#define MC1_FMR_RS_OBJ_FD_RS_OBJ01_MEAS_FLAG_OBJECT_MEASURED_IN_THIS_CYCLE_CHOICE (0u)
#define MC1_FMR_RS_OBJ_FD_RS_OBJ01_MEAS_FLAG_OBJ_EXTRAPOLATED_IN_THIS_CYCLE_CHOICE (1u)

#define MC1_FMR_RS_OBJ_FD_RS_OBJ01_CTRK_IND_STATIONARY_TRACKER_CHOICE (0u)
#define MC1_FMR_RS_OBJ_FD_RS_OBJ01_CTRK_IND_CLUSTER_TRACKER_CHOICE (1u)

#define MC1_FMR_RS_STATUS_RS_STS_FAILURE_NO__SENSOR__FAILURE__OCCURED_CHOICE (0u)
#define MC1_FMR_RS_STATUS_RS_STS_FAILURE_SENSOR__FAILURE__OCCURRED_CHOICE (1u)

#define MC1_FMR_RS_STATUS_RS_STS_INTERFERENCE_RS_IS_NOT_INTERFERED_CHOICE (0u)
#define MC1_FMR_RS_STATUS_RS_STS_INTERFERENCE_RS_IS_INTERFERED_CHOICE (1u)

#define MC1_FMR_RS_STATUS_RS_STS_BLKG_RS_IS_NOT_BLOCKED_CHOICE (0u)
#define MC1_FMR_RS_STATUS_RS_STS_BLKG_RS_IS_BLOCKED_CHOICE (1u)

#define MC1_FMR_RS_STATUS_RS_STS_MIS_ALIGN_SENSOR__IN__DEFAULT__CONDITION_CHOICE (0u)
#define MC1_FMR_RS_STATUS_RS_STS_MIS_ALIGN_SENSOR__NOT__CALIBRATED_CHOICE (1u)
#define MC1_FMR_RS_STATUS_RS_STS_MIS_ALIGN_SENSOR__CALIBRATED_CHOICE (2u)
#define MC1_FMR_RS_STATUS_RS_STS_MIS_ALIGN_SENSOR__MISALIGNMENT__DETECTED_CHOICE (3u)
#define MC1_FMR_RS_STATUS_RS_STS_MIS_ALIGN_RESERVED_4_CHOICE (4u)
#define MC1_FMR_RS_STATUS_RS_STS_MIS_ALIGN_RESERVED_5_CHOICE (5u)

#define MC1_FMR_NWM_RS_RS_AWB_PASSIVE_WAKEUP_CHOICE (0u)
#define MC1_FMR_NWM_RS_RS_AWB_ACTIVE__WAKEUP_CHOICE (1u)

#define MC1_FMR_NWM_RS_RS_RMR_REPEAT__MSG__STATE_NOT_REQUESTED_CHOICE (0u)
#define MC1_FMR_NWM_RS_RS_RMR_REPEAT__MSG__STATE_REQUESTED_CHOICE (1u)

#define MC1_FMR_NWM_RS_RS_WAKEUP_REASONS_DEFAULT_CHOICE (0u)
#define MC1_FMR_NWM_RS_RS_WAKEUP_REASONS_DESCRIPTION_FOR_THE_VALUE__0X1__CHOICE (1u)
#define MC1_FMR_NWM_RS_RS_WAKEUP_REASONS_NM_PDU__RECEIVED_CHOICE (2u)
#define MC1_FMR_NWM_RS_RS_WAKEUP_REASONS_DESCRIPTION_FOR_THE_VALUE__0X3__CHOICE (3u)
#define MC1_FMR_NWM_RS_RS_WAKEUP_REASONS_DESCRIPTION_FOR_THE_VALUE__0X4__CHOICE (4u)
#define MC1_FMR_NWM_RS_RS_WAKEUP_REASONS_DESCRIPTION_FOR_THE_VALUE__0X5__CHOICE (5u)
#define MC1_FMR_NWM_RS_RS_WAKEUP_REASONS_DESCRIPTION_FOR_THE_VALUE__0X6__CHOICE (6u)

#define MC1_FMR_NWM_RS_RS_NM_STS_REPEAT__MESSAGE__STATE_CHOICE (0u)
#define MC1_FMR_NWM_RS_RS_NM_STS_NORMAL__OPERATION__STATE_CHOICE (1u)

#define MC1_FMR_VCU_MODE_CONTROL_VCU_CURRENT_GEAR_POSITION_CURRENT_GEAR_N_CHOICE (0u)
#define MC1_FMR_VCU_MODE_CONTROL_VCU_CURRENT_GEAR_POSITION_PARK_CHOICE (10u)
#define MC1_FMR_VCU_MODE_CONTROL_VCU_CURRENT_GEAR_POSITION_CURRENT_GEAR__REVERSE_CHOICE (11u)
#define MC1_FMR_VCU_MODE_CONTROL_VCU_CURRENT_GEAR_POSITION_CURRENT_GEAR_D_CHOICE (12u)
#define MC1_FMR_VCU_MODE_CONTROL_VCU_CURRENT_GEAR_POSITION_INVALID_CHOICE (15u)

#define MC1_FMR_YRS1_YRS_YAW_RATE_SENSOR_STATE_VALID_CHOICE (0u)
#define MC1_FMR_YRS1_YRS_YAW_RATE_SENSOR_STATE_INVALID_CHOICE (1u)
#define MC1_FMR_YRS1_YRS_YAW_RATE_SENSOR_STATE_RESERVED_CHOICE (2u)
#define MC1_FMR_YRS1_YRS_YAW_RATE_SENSOR_STATE_INITIALIZING_CHOICE (3u)

#define MC1_FMR_YRS1_YRS_LATERAL_ACCE_INVALID_CHOICE (65535u)

#define MC1_FMR_YRS1_YRS_YAW_RATE_INVALID_CHOICE (65535u)

#define MC1_FMR_YRS2_YRS_LONGIT_ACCE_INVALID_CHOICE (65535u)

#define MC1_FMR_SAS_STATUS_SAS_STEER_WHEEL_ANGLE_INVALID_CHOICE (32767)

#define MC1_FMR_SAS_STATUS_SAS_FAILURE_STS_INVALID_CHOICE (0u)
#define MC1_FMR_SAS_STATUS_SAS_FAILURE_STS_VALID_CHOICE (1u)

#define MC1_FMR_ESC_STATUS_ESC_VEHICLE_SPEED_ABNORMAL_CHOICE (8190u)
#define MC1_FMR_ESC_STATUS_ESC_VEHICLE_SPEED_INVALID_VALUE_CHOICE (8191u)

#define MC1_FMR_ESC_STATUS_ESC_VEHICLE_SPEED_INVALID_VALID_CHOICE (0u)
#define MC1_FMR_ESC_STATUS_ESC_VEHICLE_SPEED_INVALID_INVALID_CHOICE (1u)

#define MC1_FMR_TCU_STATUS_TCU_CURRENT_GEAR_POSITION_CURRENT_GEAR_N_CHOICE (0u)
#define MC1_FMR_TCU_STATUS_TCU_CURRENT_GEAR_POSITION_CURRENT_GEAR_1_CHOICE (1u)
#define MC1_FMR_TCU_STATUS_TCU_CURRENT_GEAR_POSITION_CURRENT_GEAR_2_CHOICE (2u)
#define MC1_FMR_TCU_STATUS_TCU_CURRENT_GEAR_POSITION_CURRENT_GEAR_3_CHOICE (3u)
#define MC1_FMR_TCU_STATUS_TCU_CURRENT_GEAR_POSITION_CURRENT_GEAR_4_CHOICE (4u)
#define MC1_FMR_TCU_STATUS_TCU_CURRENT_GEAR_POSITION_CURRENT_GEAR_5_CHOICE (5u)
#define MC1_FMR_TCU_STATUS_TCU_CURRENT_GEAR_POSITION_CURRENT_GEAR_6_CHOICE (6u)
#define MC1_FMR_TCU_STATUS_TCU_CURRENT_GEAR_POSITION_CURRENT_GEAR_7_6_AT__RESERVED__CHOICE (7u)
#define MC1_FMR_TCU_STATUS_TCU_CURRENT_GEAR_POSITION_PARK_CHOICE (10u)
#define MC1_FMR_TCU_STATUS_TCU_CURRENT_GEAR_POSITION_CURRENT_GEAR__REVERSE_CHOICE (11u)
#define MC1_FMR_TCU_STATUS_TCU_CURRENT_GEAR_POSITION_INVALID_CHOICE (15u)

#define MC1_FMR_RS_OBJ_00_PART01_RS_OBJ00_ID_INVALID_CHOICE (8191u)

#define MC1_FMR_RS_OBJ_00_PART01_RS_OBJ00_MOTION_PATTERN_UNKNOWN_CHOICE (0u)
#define MC1_FMR_RS_OBJ_00_PART01_RS_OBJ00_MOTION_PATTERN_STATIONARY_CHOICE (1u)
#define MC1_FMR_RS_OBJ_00_PART01_RS_OBJ00_MOTION_PATTERN_STOPPED_CHOICE (2u)
#define MC1_FMR_RS_OBJ_00_PART01_RS_OBJ00_MOTION_PATTERN_MOVING_CHOICE (3u)
#define MC1_FMR_RS_OBJ_00_PART01_RS_OBJ00_MOTION_PATTERN_RESERVED_4_CHOICE (4u)
#define MC1_FMR_RS_OBJ_00_PART01_RS_OBJ00_MOTION_PATTERN_RESERVED_5_CHOICE (5u)
#define MC1_FMR_RS_OBJ_00_PART01_RS_OBJ00_MOTION_PATTERN_RESERVED_6_CHOICE (6u)
#define MC1_FMR_RS_OBJ_00_PART01_RS_OBJ00_MOTION_PATTERN_RESERVED_7_CHOICE (7u)

#define MC1_FMR_RS_OBJ_00_PART01_RS_OBJ00_ELEV_CLASS_UNKNOW_CHOICE (0u)
#define MC1_FMR_RS_OBJ_00_PART01_RS_OBJ00_ELEV_CLASS_UNDERRUNNABLE_CHOICE (1u)
#define MC1_FMR_RS_OBJ_00_PART01_RS_OBJ00_ELEV_CLASS_OVERRIDABLE_CHOICE (2u)
#define MC1_FMR_RS_OBJ_00_PART01_RS_OBJ00_ELEV_CLASS_RELEVANT_CHOICE (3u)

#define MC1_FMR_RS_OBJ_00_PART01_RS_OBJ00_ELEV_CONF_NO__QUALITY_CHOICE (0u)
#define MC1_FMR_RS_OBJ_00_PART01_RS_OBJ00_ELEV_CONF_LOW__QUALITY_CHOICE (1u)
#define MC1_FMR_RS_OBJ_00_PART01_RS_OBJ00_ELEV_CONF_MEDIUM__QUALITY_CHOICE (2u)
#define MC1_FMR_RS_OBJ_00_PART01_RS_OBJ00_ELEV_CONF_HIGH__QUALITY_CHOICE (3u)

#define MC1_FMR_RS_OBJ_00_PART01_RS_OBJ00_TYPE_UNKNOWN_CHOICE (0u)
#define MC1_FMR_RS_OBJ_00_PART01_RS_OBJ00_TYPE_4_WHEELER_CHOICE (1u)
#define MC1_FMR_RS_OBJ_00_PART01_RS_OBJ00_TYPE_2_WHEELER_CHOICE (2u)
#define MC1_FMR_RS_OBJ_00_PART01_RS_OBJ00_TYPE_PEDESTRIAN_CHOICE (3u)

#define MC1_FMR_RS_OBJ_00_PART01_RS_OBJ00_VALID_FLAG_OBJECT_INVALID_CHOICE (0u)
#define MC1_FMR_RS_OBJ_00_PART01_RS_OBJ00_VALID_FLAG_OBJECT_VALID_CHOICE (1u)

#define MC1_FMR_RS_OBJ_00_PART01_RS_OBJ00_MEAS_FLAG_OBJECT_MEASURED_IN_THIS_CYCLE_CHOICE (0u)
#define MC1_FMR_RS_OBJ_00_PART01_RS_OBJ00_MEAS_FLAG_OBJ_EXTRAPOLATED_IN_THIS_CYCLE_CHOICE (1u)

#define MC1_FMR_RS_OBJ_00_PART02_RS_OBJ00_CTRK_IND_STATIONARY_TRACKER_CHOICE (0u)
#define MC1_FMR_RS_OBJ_00_PART02_RS_OBJ00_CTRK_IND_CLUSTER_TRACKER_CHOICE (1u)

/* Frame Names. */
#define MC1_FMR_RS_OBJ_00_PART04_NAME "RS_Obj_00_Part04"
#define MC1_FMR_RS_OBJ_FD_NAME "RS_Obj_FD"
#define MC1_FMR_RS_DETANDOBJ_COUNT_NAME "RS_detandobj_count"
#define MC1_FMR_DIAG_REQ_NAME "DiagReq"
#define MC1_FMR_DIAG_RESP_NAME "DiagResp"
#define MC1_FMR_RS_STATUS_NAME "RS_Status"
#define MC1_FMR_NWM_RS_NAME "NWM_RS"
#define MC1_FMR_FUNC_DIAG_REQ_NAME "Func_DiagReq"
#define MC1_FMR_VCU_MODE_CONTROL_NAME "VCU_ModeControl"
#define MC1_FMR_YRS1_NAME "YRS1"
#define MC1_FMR_YRS2_NAME "YRS2"
#define MC1_FMR_SAS_STATUS_NAME "SAS_Status"
#define MC1_FMR_ESC_STATUS_NAME "ESC_Status"
#define MC1_FMR_TCU_STATUS_NAME "TCU_Status"
#define MC1_FMR_RS_OBJ_00_PART01_NAME "RS_Obj_00_Part01"
#define MC1_FMR_RS_OBJ_00_PART02_NAME "RS_Obj_00_Part02"
#define MC1_FMR_RS_OBJ_00_PART03_NAME "RS_Obj_00_Part03"

/* Signal Names. */
#define MC1_FMR_RS_OBJ_00_PART04_RS_OBJ00_LENGTH_NAME "RS_Obj00_Length"
#define MC1_FMR_RS_OBJ_00_PART04_RS_OBJ00_WIDTH_NAME "RS_Obj00_Width"
#define MC1_FMR_RS_OBJ_FD_RS_OBJ00_ID_NAME "RS_Obj00_ID"
#define MC1_FMR_RS_OBJ_FD_RS_OBJ00_MOTION_PATTERN_NAME "RS_Obj00_MotionPattern"
#define MC1_FMR_RS_OBJ_FD_RS_OBJ00_X_POS_NAME "RS_Obj00_XPos"
#define MC1_FMR_RS_OBJ_FD_RS_OBJ00_ELEV_CLASS_NAME "RS_Obj00_ElevClass"
#define MC1_FMR_RS_OBJ_FD_RS_OBJ00_Y_POS_NAME "RS_Obj00_YPos"
#define MC1_FMR_RS_OBJ_FD_RS_OBJ00_ELEV_CONF_NAME "RS_Obj00_ElevConf"
#define MC1_FMR_RS_OBJ_FD_RS_OBJ00_MSG01_ALIVE_COUNTER_NAME "RS_Obj00_Msg01_AliveCounter"
#define MC1_FMR_RS_OBJ_FD_RS_OBJ00_TYPE_NAME "RS_Obj00_Type"
#define MC1_FMR_RS_OBJ_FD_RS_OBJ00_VALID_FLAG_NAME "RS_Obj00_ValidFlag"
#define MC1_FMR_RS_OBJ_FD_RS_OBJ00_MEAS_FLAG_NAME "RS_Obj00_MeasFlag"
#define MC1_FMR_RS_OBJ_FD_RS_OBJ00_MSG01_CHECK_SUM_NAME "RS_Obj00_Msg01_CheckSum"
#define MC1_FMR_RS_OBJ_FD_RS_OBJ00_X_ACC_ABSOLUTE_NAME "RS_Obj00_XAccAbsolute"
#define MC1_FMR_RS_OBJ_FD_RS_OBJ00_Y_ACC_ABSOLUTE_NAME "RS_Obj00_YAccAbsolute"
#define MC1_FMR_RS_OBJ_FD_RS_OBJ00_HEADING_NAME "RS_Obj00_heading"
#define MC1_FMR_RS_OBJ_FD_RS_OBJ00_CTRK_IND_NAME "RS_Obj00_CtrkInd"
#define MC1_FMR_RS_OBJ_FD_RS_OBJ00_X_VEL_ABSOLUTE_NAME "RS_Obj00_XVelAbsolute"
#define MC1_FMR_RS_OBJ_FD_RS_OBJ00_Y_VEL_ABSOLUTE_NAME "RS_Obj00_YVelAbsolute"
#define MC1_FMR_RS_OBJ_FD_RS_OBJ00_CLASSCONF_NAME "RS_Obj00_Classconf"
#define MC1_FMR_RS_OBJ_FD_RS_OBJ00_MSG02_ALIVE_COUNTER_NAME "RS_Obj00_Msg02_AliveCounter"
#define MC1_FMR_RS_OBJ_FD_RS_OBJ00_MSG02_CHECK_SUM_NAME "RS_Obj00_Msg02_CheckSum"
#define MC1_FMR_RS_OBJ_FD_RS_OBJ00_X_POS_STDEV_NAME "RS_Obj00_XPos_Stdev"
#define MC1_FMR_RS_OBJ_FD_RS_OBJ00_Y_POS_STDEV_NAME "RS_Obj00_YPos_Stdev"
#define MC1_FMR_RS_OBJ_FD_RS_OBJ00_X_VEL_REL_STDEV_NAME "RS_Obj00_XVelRel_Stdev"
#define MC1_FMR_RS_OBJ_FD_RS_OBJ00_Y_VEL_REL_STDEV_NAME "RS_Obj00_YVelRel_Stdev"
#define MC1_FMR_RS_OBJ_FD_RS_OBJ00_X_ACC_REL_STDEV_NAME "RS_Obj00_XAccRel_Stdev"
#define MC1_FMR_RS_OBJ_FD_RS_OBJ00_Y_ACC_REL_STDEV_NAME "RS_Obj00_YAccRel_Stdev"
#define MC1_FMR_RS_OBJ_FD_RS_OBJ00_EXST_PROB_NAME "RS_Obj00_ExstProb"
#define MC1_FMR_RS_OBJ_FD_RS_OBJ00_MSG03_ALIVE_COUNTER_NAME "RS_Obj00_Msg03_AliveCounter"
#define MC1_FMR_RS_OBJ_FD_RS_OBJ00_MSG03_CHECK_SUM_NAME "RS_Obj00_Msg03_CheckSum"
#define MC1_FMR_RS_OBJ_FD_RS_OBJ00_LENGTH_NAME "RS_Obj00_Length"
#define MC1_FMR_RS_OBJ_FD_RS_OBJ00_WIDTH_NAME "RS_Obj00_Width"
#define MC1_FMR_RS_OBJ_FD_RS_OBJ01_ID_NAME "RS_Obj01_ID"
#define MC1_FMR_RS_OBJ_FD_RS_OBJ01_MOTION_PATTERN_NAME "RS_Obj01_MotionPattern"
#define MC1_FMR_RS_OBJ_FD_RS_OBJ01_X_POS_NAME "RS_Obj01_XPos"
#define MC1_FMR_RS_OBJ_FD_RS_OBJ01_ELEV_CLASS_NAME "RS_Obj01_ElevClass"
#define MC1_FMR_RS_OBJ_FD_RS_OBJ01_Y_POS_NAME "RS_Obj01_YPos"
#define MC1_FMR_RS_OBJ_FD_RS_OBJ01_ELEV_CONF_NAME "RS_Obj01_ElevConf"
#define MC1_FMR_RS_OBJ_FD_RS_OBJ01_MSG01_ALIVE_COUNTER_NAME "RS_Obj01_Msg01_AliveCounter"
#define MC1_FMR_RS_OBJ_FD_RS_OBJ01_TYPE_NAME "RS_Obj01_Type"
#define MC1_FMR_RS_OBJ_FD_RS_OBJ01_VALID_FLAG_NAME "RS_Obj01_ValidFlag"
#define MC1_FMR_RS_OBJ_FD_RS_OBJ01_MEAS_FLAG_NAME "RS_Obj01_MeasFlag"
#define MC1_FMR_RS_OBJ_FD_RS_OBJ01_MSG01_CHECK_SUM_NAME "RS_Obj01_Msg01_CheckSum"
#define MC1_FMR_RS_OBJ_FD_RS_OBJ01_X_ACC_ABSOLUTE_NAME "RS_Obj01_XAccAbsolute"
#define MC1_FMR_RS_OBJ_FD_RS_OBJ01_Y_ACC_ABSOLUTE_NAME "RS_Obj01_YAccAbsolute"
#define MC1_FMR_RS_OBJ_FD_RS_OBJ01_HEADING_NAME "RS_Obj01_heading"
#define MC1_FMR_RS_OBJ_FD_RS_OBJ01_CTRK_IND_NAME "RS_Obj01_CtrkInd"
#define MC1_FMR_RS_OBJ_FD_RS_OBJ01_X_VEL_ABSOLUTE_NAME "RS_Obj01_XVelAbsolute"
#define MC1_FMR_RS_OBJ_FD_RS_OBJ01_Y_VEL_ABSOLUTE_NAME "RS_Obj01_YVelAbsolute"
#define MC1_FMR_RS_OBJ_FD_RS_OBJ01_CLASSCONF_NAME "RS_Obj01_Classconf"
#define MC1_FMR_RS_OBJ_FD_RS_OBJ01_MSG02_ALIVE_COUNTER_NAME "RS_Obj01_Msg02_AliveCounter"
#define MC1_FMR_RS_OBJ_FD_RS_OBJ01_MSG02_CHECK_SUM_NAME "RS_Obj01_Msg02_CheckSum"
#define MC1_FMR_RS_OBJ_FD_RS_OBJ01_X_POS_STDEV_NAME "RS_Obj01_XPos_Stdev"
#define MC1_FMR_RS_OBJ_FD_RS_OBJ01_Y_POS_STDEV_NAME "RS_Obj01_YPos_Stdev"
#define MC1_FMR_RS_OBJ_FD_RS_OBJ01_X_VEL_REL_STDEV_NAME "RS_Obj01_XVelRel_Stdev"
#define MC1_FMR_RS_OBJ_FD_RS_OBJ01_Y_VEL_REL_STDEV_NAME "RS_Obj01_YVelRel_Stdev"
#define MC1_FMR_RS_OBJ_FD_RS_OBJ01_X_ACC_REL_STDEV_NAME "RS_Obj01_XAccRel_Stdev"
#define MC1_FMR_RS_OBJ_FD_RS_OBJ01_Y_ACC_REL_STDEV_NAME "RS_Obj01_YAccRel_Stdev"
#define MC1_FMR_RS_OBJ_FD_RS_OBJ01_EXST_PROB_NAME "RS_Obj01_ExstProb"
#define MC1_FMR_RS_OBJ_FD_RS_OBJ01_MSG03_ALIVE_COUNTER_NAME "RS_Obj01_Msg03_AliveCounter"
#define MC1_FMR_RS_OBJ_FD_RS_OBJ01_MSG03_CHECK_SUM_NAME "RS_Obj01_Msg03_CheckSum"
#define MC1_FMR_RS_OBJ_FD_RS_OBJ01_LENGTH_NAME "RS_Obj01_Length"
#define MC1_FMR_RS_OBJ_FD_RS_OBJ01_WIDTH_NAME "RS_Obj01_Width"
#define MC1_FMR_RS_DETANDOBJ_COUNT_DET_NUM_ENTRIES_NAME "detNumEntries"
#define MC1_FMR_RS_DETANDOBJ_COUNT_NUM_TXDETS_NAME "numTxdets"
#define MC1_FMR_RS_DETANDOBJ_COUNT_OBJ_NUM_ENTRIES_NAME "objNumEntries"
#define MC1_FMR_RS_DETANDOBJ_COUNT_NUM_TX_OBJS_NAME "numTxObjs"
#define MC1_FMR_DIAG_REQ_DIAG_REQ_BYTE0_NAME "DiagReq_Byte0"
#define MC1_FMR_DIAG_REQ_DIAG_REQ_BYTE1_NAME "DiagReq_Byte1"
#define MC1_FMR_DIAG_REQ_DIAG_REQ_BYTE2_NAME "DiagReq_Byte2"
#define MC1_FMR_DIAG_REQ_DIAG_REQ_BYTE3_NAME "DiagReq_Byte3"
#define MC1_FMR_DIAG_REQ_DIAG_REQ_BYTE4_NAME "DiagReq_Byte4"
#define MC1_FMR_DIAG_REQ_DIAG_REQ_BYTE5_NAME "DiagReq_Byte5"
#define MC1_FMR_DIAG_REQ_DIAG_REQ_BYTE6_NAME "DiagReq_Byte6"
#define MC1_FMR_DIAG_REQ_DIAG_REQ_BYTE7_NAME "DiagReq_Byte7"
#define MC1_FMR_DIAG_RESP_DIAG_RESP_BYTE0_NAME "DiagResp_Byte0"
#define MC1_FMR_DIAG_RESP_DIAG_RESP_BYTE1_NAME "DiagResp_Byte1"
#define MC1_FMR_DIAG_RESP_DIAG_RESP_BYTE2_NAME "DiagResp_Byte2"
#define MC1_FMR_DIAG_RESP_DIAG_RESP_BYTE3_NAME "DiagResp_Byte3"
#define MC1_FMR_DIAG_RESP_DIAG_RESP_BYTE4_NAME "DiagResp_Byte4"
#define MC1_FMR_DIAG_RESP_DIAG_RESP_BYTE5_NAME "DiagResp_Byte5"
#define MC1_FMR_DIAG_RESP_DIAG_RESP_BYTE6_NAME "DiagResp_Byte6"
#define MC1_FMR_DIAG_RESP_DIAG_RESP_BYTE7_NAME "DiagResp_Byte7"
#define MC1_FMR_RS_STATUS_RS_STS_FAILURE_NAME "RS_Sts_Failure"
#define MC1_FMR_RS_STATUS_RS_STS_INTERFERENCE_NAME "RS_Sts_Interference"
#define MC1_FMR_RS_STATUS_RS_STS_BLKG_NAME "RS_Sts_Blkg"
#define MC1_FMR_RS_STATUS_RS_STS_MIS_ALIGN_NAME "RS_Sts_MisAlign"
#define MC1_FMR_RS_STATUS_RS_LATENCY_NAME "RS_Latency"
#define MC1_FMR_RS_STATUS_RS_MSG_ALIVE_COUNTER_NAME "RS_Msg_AliveCounter"
#define MC1_FMR_RS_STATUS_RS_MSG_CHECK_SUM_NAME "RS_Msg_CheckSum"
#define MC1_FMR_NWM_RS_RS_ADDRESS_NAME "RS_Address"
#define MC1_FMR_NWM_RS_RS_AWB_NAME "RS_AWB"
#define MC1_FMR_NWM_RS_RS_RMR_NAME "RS_RMR"
#define MC1_FMR_NWM_RS_RS_WAKEUP_REASONS_NAME "RS_Wakeup_reasons"
#define MC1_FMR_NWM_RS_RS_NM_STS_NAME "RS_NMSts"
#define MC1_FMR_NWM_RS_RS_STAYAWAKE_REASONS_NAME "RS_Stayawake_reasons"
#define MC1_FMR_FUNC_DIAG_REQ_FUNC_DIAG_REQ_BYTE0_NAME "Func_DiagReq_Byte0"
#define MC1_FMR_FUNC_DIAG_REQ_FUNC_DIAG_REQ_BYTE2_NAME "Func_DiagReq_Byte2"
#define MC1_FMR_FUNC_DIAG_REQ_FUNC_DIAG_REQ_BYTE3_NAME "Func_DiagReq_Byte3"
#define MC1_FMR_FUNC_DIAG_REQ_FUNC_DIAG_REQ_BYTE4_NAME "Func_DiagReq_Byte4"
#define MC1_FMR_FUNC_DIAG_REQ_FUNC_DIAG_REQ_BYTE5_NAME "Func_DiagReq_Byte5"
#define MC1_FMR_FUNC_DIAG_REQ_FUNC_DIAG_REQ_BYTE6_NAME "Func_DiagReq_Byte6"
#define MC1_FMR_FUNC_DIAG_REQ_FUNC_DIAG_REQ_BYTE7_NAME "Func_DiagReq_Byte7"
#define MC1_FMR_VCU_MODE_CONTROL_VCU_CURRENT_GEAR_POSITION_NAME "VCU_CurrentGearPosition"
#define MC1_FMR_VCU_MODE_CONTROL_VCU_MODE_CONTROL_ALIVE_COUNTER_NAME "VCU_ModeControl_AliveCounter"
#define MC1_FMR_VCU_MODE_CONTROL_VCU_MODE_CONTROL_CHECK_SUM_NAME "VCU_ModeControl_CheckSum"
#define MC1_FMR_YRS1_YRS1_CHECK_SUM_NAME "YRS1_CheckSum"
#define MC1_FMR_YRS1_YRS_YAW_RATE_SENSOR_STATE_NAME "YRS_YawRateSensorState"
#define MC1_FMR_YRS1_YRS_LATERAL_ACCE_NAME "YRS_LateralAcce"
#define MC1_FMR_YRS1_YRS_YAW_RATE_NAME "YRS_YawRate"
#define MC1_FMR_YRS1_YRS1_ALIVE_COUNTER_NAME "YRS1_AliveCounter"
#define MC1_FMR_YRS2_YRS2_CHECK_SUM_NAME "YRS2_CheckSum"
#define MC1_FMR_YRS2_YRS_LONGIT_ACCE_NAME "YRS_LongitAcce"
#define MC1_FMR_YRS2_YRS2_ALIVE_COUNTER_NAME "YRS2_AliveCounter"
#define MC1_FMR_SAS_STATUS_SAS_STEER_WHEEL_ANGLE_NAME "SAS_SteerWheelAngle"
#define MC1_FMR_SAS_STATUS_SAS_FAILURE_STS_NAME "SAS_FailureSts"
#define MC1_FMR_SAS_STATUS_SAS_STATUS_ALIVE_COUNTER_NAME "SAS_Status_AliveCounter"
#define MC1_FMR_SAS_STATUS_SAS_STATUS_CHECK_SUM_NAME "SAS_Status_CheckSum"
#define MC1_FMR_ESC_STATUS_ESC_VEHICLE_SPEED_NAME "ESC_VehicleSpeed"
#define MC1_FMR_ESC_STATUS_ESC_VEHICLE_SPEED_INVALID_NAME "ESC_VehicleSpeedInvalid"
#define MC1_FMR_ESC_STATUS_ESC_STATUS_ALIVE_COUNTER_NAME "ESC_Status_AliveCounter"
#define MC1_FMR_ESC_STATUS_ESC_STATUS_CHECK_SUM_NAME "ESC_Status_CheckSum"
#define MC1_FMR_TCU_STATUS_TCU_CURRENT_GEAR_POSITION_NAME "TCU_CurrentGearPosition"
#define MC1_FMR_TCU_STATUS_TCU_STATUS_ALIVE_COUNTER_NAME "TCU_Status_AliveCounter"
#define MC1_FMR_TCU_STATUS_TCU_STATUS_CHECK_SUM_NAME "TCU_Status_CheckSum"
#define MC1_FMR_RS_OBJ_00_PART01_RS_OBJ00_ID_NAME "RS_Obj00_ID"
#define MC1_FMR_RS_OBJ_00_PART01_RS_OBJ00_MOTION_PATTERN_NAME "RS_Obj00_MotionPattern"
#define MC1_FMR_RS_OBJ_00_PART01_RS_OBJ00_X_POS_NAME "RS_Obj00_XPos"
#define MC1_FMR_RS_OBJ_00_PART01_RS_OBJ00_ELEV_CLASS_NAME "RS_Obj00_ElevClass"
#define MC1_FMR_RS_OBJ_00_PART01_RS_OBJ00_Y_POS_NAME "RS_Obj00_YPos"
#define MC1_FMR_RS_OBJ_00_PART01_RS_OBJ00_ELEV_CONF_NAME "RS_Obj00_ElevConf"
#define MC1_FMR_RS_OBJ_00_PART01_RS_OBJ00_MSG01_ALIVE_COUNTER_NAME "RS_Obj00_Msg01_AliveCounter"
#define MC1_FMR_RS_OBJ_00_PART01_RS_OBJ00_TYPE_NAME "RS_Obj00_Type"
#define MC1_FMR_RS_OBJ_00_PART01_RS_OBJ00_VALID_FLAG_NAME "RS_Obj00_ValidFlag"
#define MC1_FMR_RS_OBJ_00_PART01_RS_OBJ00_MEAS_FLAG_NAME "RS_Obj00_MeasFlag"
#define MC1_FMR_RS_OBJ_00_PART01_RS_OBJ00_MSG01_CHECK_SUM_NAME "RS_Obj00_Msg01_CheckSum"
#define MC1_FMR_RS_OBJ_00_PART02_RS_OBJ00_X_ACC_ABSOLUTE_NAME "RS_Obj00_XAccAbsolute"
#define MC1_FMR_RS_OBJ_00_PART02_RS_OBJ00_Y_ACC_ABSOLUTE_NAME "RS_Obj00_YAccAbsolute"
#define MC1_FMR_RS_OBJ_00_PART02_RS_OBJ00_HEADING_NAME "RS_Obj00_heading"
#define MC1_FMR_RS_OBJ_00_PART02_RS_OBJ00_CTRK_IND_NAME "RS_Obj00_CtrkInd"
#define MC1_FMR_RS_OBJ_00_PART02_RS_OBJ00_X_VEL_ABSOLUTE_NAME "RS_Obj00_XVelAbsolute"
#define MC1_FMR_RS_OBJ_00_PART02_RS_OBJ00_Y_VEL_ABSOLUTE_NAME "RS_Obj00_YVelAbsolute"
#define MC1_FMR_RS_OBJ_00_PART02_RS_OBJ00_CLASSCONF_NAME "RS_Obj00_Classconf"
#define MC1_FMR_RS_OBJ_00_PART02_RS_OBJ00_MSG02_ALIVE_COUNTER_NAME "RS_Obj00_Msg02_AliveCounter"
#define MC1_FMR_RS_OBJ_00_PART02_RS_OBJ00_MSG02_CHECK_SUM_NAME "RS_Obj00_Msg02_CheckSum"
#define MC1_FMR_RS_OBJ_00_PART03_RS_OBJ00_X_POS_STDEV_NAME "RS_Obj00_XPos_Stdev"
#define MC1_FMR_RS_OBJ_00_PART03_RS_OBJ00_Y_POS_STDEV_NAME "RS_Obj00_YPos_Stdev"
#define MC1_FMR_RS_OBJ_00_PART03_RS_OBJ00_X_VEL_REL_STDEV_NAME "RS_Obj00_XVelRel_Stdev"
#define MC1_FMR_RS_OBJ_00_PART03_RS_OBJ00_Y_VEL_REL_STDEV_NAME "RS_Obj00_YVelRel_Stdev"
#define MC1_FMR_RS_OBJ_00_PART03_RS_OBJ00_X_ACC_REL_STDEV_NAME "RS_Obj00_XAccRel_Stdev"
#define MC1_FMR_RS_OBJ_00_PART03_RS_OBJ00_Y_ACC_REL_STDEV_NAME "RS_Obj00_YAccRel_Stdev"
#define MC1_FMR_RS_OBJ_00_PART03_RS_OBJ00_EXST_PROB_NAME "RS_Obj00_ExstProb"
#define MC1_FMR_RS_OBJ_00_PART03_RS_OBJ00_MSG03_ALIVE_COUNTER_NAME "RS_Obj00_Msg03_AliveCounter"
#define MC1_FMR_RS_OBJ_00_PART03_RS_OBJ00_MSG03_CHECK_SUM_NAME "RS_Obj00_Msg03_CheckSum"

/**
 * Signals in message RS_Obj_00_Part04.
 *
 * All signal values are as on the CAN bus.
 */
struct mc1_fmr_rs_obj_00_part04_t {
    /**
     * Range: 0..255 (0..51 -)
     * Scale: 0.2
     * Offset: 0
     */
    uint8_t rs_obj00_length;

    /**
     * Range: 0..255 (0..51 -)
     * Scale: 0.2
     * Offset: 0
     */
    uint8_t rs_obj00_width;
};

/**
 * Signals in message RS_Obj_FD.
 *
 * All signal values are as on the CAN bus.
 */
struct mc1_fmr_rs_obj_fd_t {
    /**
     * Range: 0..8191 (0..8191 bit)
     * Scale: 1
     * Offset: 0
     */
    uint16_t rs_obj00_id;

    /**
     * Range: 0..7 (0..7 bit)
     * Scale: 1
     * Offset: 0
     */
    uint8_t rs_obj00_motion_pattern;

    /**
     * Range: 0..16383 (-200..199.90903 m)
     * Scale: 0.02441
     * Offset: -200
     */
    uint16_t rs_obj00_x_pos;

    /**
     * Range: 0..3 (0..3 bit)
     * Scale: 1
     * Offset: 0
     */
    uint8_t rs_obj00_elev_class;

    /**
     * Range: 0..16383 (-200..199.90903 m)
     * Scale: 0.02441
     * Offset: -200
     */
    uint16_t rs_obj00_y_pos;

    /**
     * Range: 0..3 (0..3 bit)
     * Scale: 1
     * Offset: 0
     */
    uint8_t rs_obj00_elev_conf;

    /**
     * Range: 0..15 (0..15 bit)
     * Scale: 1
     * Offset: 0
     */
    uint8_t rs_obj00_msg01_alive_counter;

    /**
     * Range: 0..3 (0..3 bit)
     * Scale: 1
     * Offset: 0
     */
    uint8_t rs_obj00_type;

    /**
     * Range: 0..1 (0..1 bit)
     * Scale: 1
     * Offset: 0
     */
    uint8_t rs_obj00_valid_flag;

    /**
     * Range: 0..1 (0..1 bit)
     * Scale: 1
     * Offset: 0
     */
    uint8_t rs_obj00_meas_flag;

    /**
     * Range: 0..255 (0..255 bit)
     * Scale: 1
     * Offset: 0
     */
    uint8_t rs_obj00_msg01_check_sum;

    /**
     * Range: 0..255 (-25.6..25.4 m/s2)
     * Scale: 0.2
     * Offset: -25.6
     */
    uint8_t rs_obj00_x_acc_absolute;

    /**
     * Range: 0..255 (-25.6..25.4 m/s2)
     * Scale: 0.2
     * Offset: -25.6
     */
    uint8_t rs_obj00_y_acc_absolute;

    /**
     * Range: 0..127 (0..6.23405 rad)
     * Scale: 0.049087
     * Offset: 0
     */
    uint8_t rs_obj00_heading;

    /**
     * Range: 0..1 (0..1 bit)
     * Scale: 1
     * Offset: 0
     */
    uint8_t rs_obj00_ctrk_ind;

    /**
     * Range: 0..2047 (-102.4..102.3 m/s)
     * Scale: 0.1
     * Offset: -102.4
     */
    uint16_t rs_obj00_x_vel_absolute;

    /**
     * Range: 0..2047 (-102.4..102.3 m/s)
     * Scale: 0.1
     * Offset: -102.4
     */
    uint16_t rs_obj00_y_vel_absolute;

    /**
     * Range: 0..63 (0..100 %)
     * Scale: 1.5873
     * Offset: 0
     */
    uint8_t rs_obj00_classconf;

    /**
     * Range: 0..15 (0..15 bit)
     * Scale: 1
     * Offset: 0
     */
    uint8_t rs_obj00_msg02_alive_counter;

    /**
     * Range: 0..255 (0..255 bit)
     * Scale: 1
     * Offset: 0
     */
    uint8_t rs_obj00_msg02_check_sum;

    /**
     * Range: 0..63 (0..12.6 m)
     * Scale: 0.2
     * Offset: 0
     */
    uint8_t rs_obj00_x_pos_stdev;

    /**
     * Range: 0..63 (0..12.6 m)
     * Scale: 0.2
     * Offset: 0
     */
    uint8_t rs_obj00_y_pos_stdev;

    /**
     * Range: 0..63 (0..12.6 m/s)
     * Scale: 0.2
     * Offset: 0
     */
    uint8_t rs_obj00_x_vel_rel_stdev;

    /**
     * Range: 0..63 (0..12.6 m/s)
     * Scale: 0.2
     * Offset: 0
     */
    uint8_t rs_obj00_y_vel_rel_stdev;

    /**
     * Range: 0..63 (0..12.6 m/s2)
     * Scale: 0.2
     * Offset: 0
     */
    uint8_t rs_obj00_x_acc_rel_stdev;

    /**
     * Range: 0..63 (0..12.6 m/s2)
     * Scale: 0.2
     * Offset: 0
     */
    uint8_t rs_obj00_y_acc_rel_stdev;

    /**
     * Range: 0..63 (0..63 bit)
     * Scale: 1
     * Offset: 0
     */
    uint8_t rs_obj00_exst_prob;

    /**
     * Range: 0..15 (0..15 bit)
     * Scale: 1
     * Offset: 0
     */
    uint8_t rs_obj00_msg03_alive_counter;

    /**
     * Range: 0..255 (0..255 bit)
     * Scale: 1
     * Offset: 0
     */
    uint8_t rs_obj00_msg03_check_sum;

    /**
     * Range: 0..255 (0..51 -)
     * Scale: 0.2
     * Offset: 0
     */
    uint8_t rs_obj00_length;

    /**
     * Range: 0..255 (0..51 -)
     * Scale: 0.2
     * Offset: 0
     */
    uint8_t rs_obj00_width;

    /**
     * Range: 0..8191 (0..8191 bit)
     * Scale: 1
     * Offset: 0
     */
    uint16_t rs_obj01_id;

    /**
     * Range: 0..7 (0..7 bit)
     * Scale: 1
     * Offset: 0
     */
    uint8_t rs_obj01_motion_pattern;

    /**
     * Range: 0..16383 (-200..199.90903 m)
     * Scale: 0.02441
     * Offset: -200
     */
    uint16_t rs_obj01_x_pos;

    /**
     * Range: 0..3 (0..3 bit)
     * Scale: 1
     * Offset: 0
     */
    uint8_t rs_obj01_elev_class;

    /**
     * Range: 0..16383 (-200..199.90903 m)
     * Scale: 0.02441
     * Offset: -200
     */
    uint16_t rs_obj01_y_pos;

    /**
     * Range: 0..3 (0..3 bit)
     * Scale: 1
     * Offset: 0
     */
    uint8_t rs_obj01_elev_conf;

    /**
     * Range: 0..15 (0..15 bit)
     * Scale: 1
     * Offset: 0
     */
    uint8_t rs_obj01_msg01_alive_counter;

    /**
     * Range: 0..3 (0..3 bit)
     * Scale: 1
     * Offset: 0
     */
    uint8_t rs_obj01_type;

    /**
     * Range: 0..1 (0..1 bit)
     * Scale: 1
     * Offset: 0
     */
    uint8_t rs_obj01_valid_flag;

    /**
     * Range: 0..1 (0..1 bit)
     * Scale: 1
     * Offset: 0
     */
    uint8_t rs_obj01_meas_flag;

    /**
     * Range: 0..255 (0..255 bit)
     * Scale: 1
     * Offset: 0
     */
    uint8_t rs_obj01_msg01_check_sum;

    /**
     * Range: 0..255 (-25.6..25.4 m/s2)
     * Scale: 0.2
     * Offset: -25.6
     */
    uint8_t rs_obj01_x_acc_absolute;

    /**
     * Range: 0..255 (-25.6..25.4 m/s2)
     * Scale: 0.2
     * Offset: -25.6
     */
    uint8_t rs_obj01_y_acc_absolute;

    /**
     * Range: 0..127 (0..6.23405 rad)
     * Scale: 0.049087
     * Offset: 0
     */
    uint8_t rs_obj01_heading;

    /**
     * Range: 0..1 (0..1 bit)
     * Scale: 1
     * Offset: 0
     */
    uint8_t rs_obj01_ctrk_ind;

    /**
     * Range: 0..2047 (-102.4..102.3 m/s)
     * Scale: 0.1
     * Offset: -102.4
     */
    uint16_t rs_obj01_x_vel_absolute;

    /**
     * Range: 0..2047 (-102.4..102.3 m/s)
     * Scale: 0.1
     * Offset: -102.4
     */
    uint16_t rs_obj01_y_vel_absolute;

    /**
     * Range: 0..63 (0..100 %)
     * Scale: 1.5873
     * Offset: 0
     */
    uint8_t rs_obj01_classconf;

    /**
     * Range: 0..15 (0..15 bit)
     * Scale: 1
     * Offset: 0
     */
    uint8_t rs_obj01_msg02_alive_counter;

    /**
     * Range: 0..255 (0..255 bit)
     * Scale: 1
     * Offset: 0
     */
    uint8_t rs_obj01_msg02_check_sum;

    /**
     * Range: 0..63 (0..12.6 m)
     * Scale: 0.2
     * Offset: 0
     */
    uint8_t rs_obj01_x_pos_stdev;

    /**
     * Range: 0..63 (0..12.6 m)
     * Scale: 0.2
     * Offset: 0
     */
    uint8_t rs_obj01_y_pos_stdev;

    /**
     * Range: 0..63 (0..12.6 m/s)
     * Scale: 0.2
     * Offset: 0
     */
    uint8_t rs_obj01_x_vel_rel_stdev;

    /**
     * Range: 0..63 (0..12.6 m/s)
     * Scale: 0.2
     * Offset: 0
     */
    uint8_t rs_obj01_y_vel_rel_stdev;

    /**
     * Range: 0..63 (0..12.6 m/s2)
     * Scale: 0.2
     * Offset: 0
     */
    uint8_t rs_obj01_x_acc_rel_stdev;

    /**
     * Range: 0..63 (0..12.6 m/s2)
     * Scale: 0.2
     * Offset: 0
     */
    uint8_t rs_obj01_y_acc_rel_stdev;

    /**
     * Range: 0..63 (0..63 bit)
     * Scale: 1
     * Offset: 0
     */
    uint8_t rs_obj01_exst_prob;

    /**
     * Range: 0..15 (0..15 bit)
     * Scale: 1
     * Offset: 0
     */
    uint8_t rs_obj01_msg03_alive_counter;

    /**
     * Range: 0..255 (0..255 bit)
     * Scale: 1
     * Offset: 0
     */
    uint8_t rs_obj01_msg03_check_sum;

    /**
     * Range: 0..255 (0..51 -)
     * Scale: 0.2
     * Offset: 0
     */
    uint8_t rs_obj01_length;

    /**
     * Range: 0..255 (0..51 -)
     * Scale: 0.2
     * Offset: 0
     */
    uint8_t rs_obj01_width;
};

/**
 * Signals in message RS_detandobj_count.
 *
 * All signal values are as on the CAN bus.
 */
struct mc1_fmr_rs_detandobj_count_t {
    /**
     * Range: -
     * Scale: 1
     * Offset: 0
     */
    uint8_t det_num_entries;

    /**
     * Range: -
     * Scale: 1
     * Offset: 0
     */
    uint8_t num_txdets;

    /**
     * Range: -
     * Scale: 1
     * Offset: 0
     */
    uint8_t obj_num_entries;

    /**
     * Range: -
     * Scale: 1
     * Offset: 0
     */
    uint8_t num_tx_objs;
};

/**
 * Signals in message DiagReq.
 *
 * All signal values are as on the CAN bus.
 */
struct mc1_fmr_diag_req_t {
    /**
     * Range: 0..255 (0..255 -)
     * Scale: 1
     * Offset: 0
     */
    uint8_t diag_req_byte0;

    /**
     * Range: 0..255 (0..255 -)
     * Scale: 1
     * Offset: 0
     */
    uint8_t diag_req_byte1;

    /**
     * Range: 0..255 (0..255 -)
     * Scale: 1
     * Offset: 0
     */
    uint8_t diag_req_byte2;

    /**
     * Range: 0..255 (0..255 -)
     * Scale: 1
     * Offset: 0
     */
    uint8_t diag_req_byte3;

    /**
     * Range: 0..255 (0..255 -)
     * Scale: 1
     * Offset: 0
     */
    uint8_t diag_req_byte4;

    /**
     * Range: 0..255 (0..255 -)
     * Scale: 1
     * Offset: 0
     */
    uint8_t diag_req_byte5;

    /**
     * Range: 0..255 (0..255 -)
     * Scale: 1
     * Offset: 0
     */
    uint8_t diag_req_byte6;

    /**
     * Range: 0..255 (0..255 -)
     * Scale: 1
     * Offset: 0
     */
    uint8_t diag_req_byte7;
};

/**
 * Signals in message DiagResp.
 *
 * All signal values are as on the CAN bus.
 */
struct mc1_fmr_diag_resp_t {
    /**
     * Range: 0..255 (0..255 -)
     * Scale: 1
     * Offset: 0
     */
    uint8_t diag_resp_byte0;

    /**
     * Range: 0..255 (0..255 -)
     * Scale: 1
     * Offset: 0
     */
    uint8_t diag_resp_byte1;

    /**
     * Range: 0..255 (0..255 -)
     * Scale: 1
     * Offset: 0
     */
    uint8_t diag_resp_byte2;

    /**
     * Range: 0..255 (0..255 -)
     * Scale: 1
     * Offset: 0
     */
    uint8_t diag_resp_byte3;

    /**
     * Range: 0..255 (0..255 -)
     * Scale: 1
     * Offset: 0
     */
    uint8_t diag_resp_byte4;

    /**
     * Range: 0..255 (0..255 -)
     * Scale: 1
     * Offset: 0
     */
    uint8_t diag_resp_byte5;

    /**
     * Range: 0..255 (0..255 -)
     * Scale: 1
     * Offset: 0
     */
    uint8_t diag_resp_byte6;

    /**
     * Range: 0..255 (0..255 -)
     * Scale: 1
     * Offset: 0
     */
    uint8_t diag_resp_byte7;
};

/**
 * Signals in message RS_Status.
 *
 * All signal values are as on the CAN bus.
 */
struct mc1_fmr_rs_status_t {
    /**
     * Range: 0..1 (0..1 bit)
     * Scale: 1
     * Offset: 0
     */
    uint8_t rs_sts_failure;

    /**
     * Range: 0..1 (0..1 bit)
     * Scale: 1
     * Offset: 0
     */
    uint8_t rs_sts_interference;

    /**
     * Range: 0..1 (0..1 bit)
     * Scale: 1
     * Offset: 0
     */
    uint8_t rs_sts_blkg;

    /**
     * Range: 0..7 (0..7 bit)
     * Scale: 1
     * Offset: 0
     */
    uint8_t rs_sts_mis_align;

    /**
     * Range: 0..255 (0..1.275 s)
     * Scale: 0.005
     * Offset: 0
     */
    uint8_t rs_latency;

    /**
     * Range: 0..15 (0..15 bit)
     * Scale: 1
     * Offset: 0
     */
    uint8_t rs_msg_alive_counter;

    /**
     * Range: 0..255 (0..255 bit)
     * Scale: 1
     * Offset: 0
     */
    uint8_t rs_msg_check_sum;
};

/**
 * Signals in message NWM_RS.
 *
 * All signal values are as on the CAN bus.
 */
struct mc1_fmr_nwm_rs_t {
    /**
     * Range: 0..127 (0..127 bit)
     * Scale: 1
     * Offset: 0
     */
    uint8_t rs_address;

    /**
     * Range: 0..1 (0..1 bit)
     * Scale: 1
     * Offset: 0
     */
    uint8_t rs_awb;

    /**
     * Range: 0..1 (0..1 bit)
     * Scale: 1
     * Offset: 0
     */
    uint8_t rs_rmr;

    /**
     * Range: 0..255 (0..255 bit)
     * Scale: 1
     * Offset: 0
     */
    uint8_t rs_wakeup_reasons;

    /**
     * Range: 0..1 (0..1 bit)
     * Scale: 1
     * Offset: 0
     */
    uint8_t rs_nm_sts;

    /**
     * Range: 0..127 (0..127 bit)
     * Scale: 1
     * Offset: 0
     */
    uint32_t rs_stayawake_reasons;
};

/**
 * Signals in message Func_DiagReq.
 *
 * All signal values are as on the CAN bus.
 */
struct mc1_fmr_func_diag_req_t {
    /**
     * Range: 0..255 (0..255 -)
     * Scale: 1
     * Offset: 0
     */
    uint8_t func_diag_req_byte0;

    /**
     * Range: 0..255 (0..255 -)
     * Scale: 1
     * Offset: 0
     */
    uint8_t func_diag_req_byte2;

    /**
     * Range: 0..255 (0..255 -)
     * Scale: 1
     * Offset: 0
     */
    uint8_t func_diag_req_byte3;

    /**
     * Range: 0..255 (0..255 -)
     * Scale: 1
     * Offset: 0
     */
    uint8_t func_diag_req_byte4;

    /**
     * Range: 0..255 (0..255 -)
     * Scale: 1
     * Offset: 0
     */
    uint8_t func_diag_req_byte5;

    /**
     * Range: 0..255 (0..255 -)
     * Scale: 1
     * Offset: 0
     */
    uint8_t func_diag_req_byte6;

    /**
     * Range: 0..255 (0..255 -)
     * Scale: 1
     * Offset: 0
     */
    uint8_t func_diag_req_byte7;
};

/**
 * Signals in message VCU_ModeControl.
 *
 * All signal values are as on the CAN bus.
 */
struct mc1_fmr_vcu_mode_control_t {
    /**
     * Range: 0..15 (0..15 bit)
     * Scale: 1
     * Offset: 0
     */
    uint8_t vcu_current_gear_position;

    /**
     * Range: 0..15 (0..15 bit)
     * Scale: 1
     * Offset: 0
     */
    uint8_t vcu_mode_control_alive_counter;

    /**
     * Range: 0..255 (0..255 bit)
     * Scale: 1
     * Offset: 0
     */
    uint8_t vcu_mode_control_check_sum;
};

/**
 * Signals in message YRS1.
 *
 * Transmitted by ACU , including ACU YRS signals
 *
 * All signal values are as on the CAN bus.
 */
struct mc1_fmr_yrs1_t {
    /**
     * YRS1_Checksum
     *
     * Range: 0..255 (0..255 bit)
     * Scale: 1
     * Offset: 0
     */
    uint8_t yrs1_check_sum;

    /**
     * Indicates YawRate Sensor State
     *
     * Range: 0..3 (0..3 bit)
     * Scale: 1
     * Offset: 0
     */
    uint8_t yrs_yaw_rate_sensor_state;

    /**
     * Indicates Lateral Acceleration
     * 0x0FA1~0xFFFF: Invalid
     *
     * Range: 0..4000 (-2..2 g)
     * Scale: 0.001
     * Offset: -2
     */
    uint16_t yrs_lateral_acce;

    /**
     * Indicates Yaw Rate
     * 0x8CA1~0xFFFF: Invalid
     *
     * Range: 0..36000 (-180..180 ang/s)
     * Scale: 0.01
     * Offset: -180
     */
    uint16_t yrs_yaw_rate;

    /**
     * Indicates the message sending number
     *
     * Range: 0..15 (0..15 bit)
     * Scale: 1
     * Offset: 0
     */
    uint8_t yrs1_alive_counter;
};

/**
 * Signals in message YRS2.
 *
 * Transmitted by ACU , including ACU YRS signals
 *
 * All signal values are as on the CAN bus.
 */
struct mc1_fmr_yrs2_t {
    /**
     * YRS2_CheckSum
     *
     * Range: 0..255 (0..255 bit)
     * Scale: 1
     * Offset: 0
     */
    uint8_t yrs2_check_sum;

    /**
     * Indicates Longitudinal Acceleration
     * 0x0FA1~0xFFFF: Invalid
     *
     * Range: 0..4000 (-2..2 g)
     * Scale: 0.001
     * Offset: -2
     */
    uint16_t yrs_longit_acce;

    /**
     * Indicates the message sending number
     *
     * Range: 0..15 (0..15 bit)
     * Scale: 1
     * Offset: 0
     */
    uint8_t yrs2_alive_counter;
};

/**
 * Signals in message SAS_Status.
 *
 * Transmitted by SAS, including SAS sensor status singals
 *
 * All signal values are as on the CAN bus.
 */
struct mc1_fmr_sas_status_t {
    /**
     * Actual steering wheel angle
     *
     * Range: -7800..7799 (-780..779.9 degree/bit)
     * Scale: 0.1
     * Offset: 0
     */
    int16_t sas_steer_wheel_angle;

    /**
     * SAS failure status
     *
     * Range: 0..1 (0..1 bit)
     * Scale: 1
     * Offset: 0
     */
    uint8_t sas_failure_sts;

    /**
     * Message counter
     *
     * Range: 0..15 (0..15 bit)
     * Scale: 1
     * Offset: 0
     */
    uint8_t sas_status_alive_counter;

    /**
     * SAS_Status checksum
     *
     * Range: 0..255 (0..255 bit)
     * Scale: 1
     * Offset: 0
     */
    uint8_t sas_status_check_sum;
};

/**
 * Signals in message ESC_Status.
 *
 * Transmitted by ESC, including ESC status ,Vehicle Speed and Brake switch status
 *
 * All signal values are as on the CAN bus.
 */
struct mc1_fmr_esc_status_t {
    /**
     * Vehicle Speed
     *
     * Range: 0..8189 (0..460.63125 KPH)
     * Scale: 0.05625
     * Offset: 0
     */
    uint16_t esc_vehicle_speed;

    /**
     * Signal from ABS_ESC to indicate if VehicleSpeed is valid
     *
     * Range: 0..1 (0..1 bit)
     * Scale: 1
     * Offset: 0
     */
    uint8_t esc_vehicle_speed_invalid;

    /**
     * Message Rolling counter
     *
     * Range: 0..15 (0..15 bit)
     * Scale: 1
     * Offset: 0
     */
    uint8_t esc_status_alive_counter;

    /**
     * ESC_Status checksum
     *
     * Range: 0..255 (0..255 bit)
     * Scale: 1
     * Offset: 0
     */
    uint8_t esc_status_check_sum;
};

/**
 * Signals in message TCU_Status.
 *
 * Transmitted by TCU, including TCU req and states
 *
 * All signal values are as on the CAN bus.
 */
struct mc1_fmr_tcu_status_t {
    /**
     * TCU current Gear status
     *
     * Range: 0..15 (0..15 bit)
     * Scale: 1
     * Offset: 0
     */
    uint8_t tcu_current_gear_position;

    /**
     * Range: 0..15 (0..15 bit)
     * Scale: 1
     * Offset: 0
     */
    uint8_t tcu_status_alive_counter;

    /**
     * TCU_Status checksum
     *
     * Range: 0..255 (0..255 bit)
     * Scale: 1
     * Offset: 0
     */
    uint8_t tcu_status_check_sum;
};

/**
 * Signals in message RS_Obj_00_Part01.
 *
 * All signal values are as on the CAN bus.
 */
struct mc1_fmr_rs_obj_00_part01_t {
    /**
     * Range: 0..8191 (0..8191 bit)
     * Scale: 1
     * Offset: 0
     */
    uint16_t rs_obj00_id;

    /**
     * Range: 0..7 (0..7 bit)
     * Scale: 1
     * Offset: 0
     */
    uint8_t rs_obj00_motion_pattern;

    /**
     * Range: 0..16383 (-200..199.90903 m)
     * Scale: 0.02441
     * Offset: -200
     */
    uint16_t rs_obj00_x_pos;

    /**
     * Range: 0..3 (0..3 bit)
     * Scale: 1
     * Offset: 0
     */
    uint8_t rs_obj00_elev_class;

    /**
     * Range: 0..16383 (-200..199.90903 m)
     * Scale: 0.02441
     * Offset: -200
     */
    uint16_t rs_obj00_y_pos;

    /**
     * Range: 0..3 (0..3 bit)
     * Scale: 1
     * Offset: 0
     */
    uint8_t rs_obj00_elev_conf;

    /**
     * Range: 0..15 (0..15 bit)
     * Scale: 1
     * Offset: 0
     */
    uint8_t rs_obj00_msg01_alive_counter;

    /**
     * Range: 0..3 (0..3 bit)
     * Scale: 1
     * Offset: 0
     */
    uint8_t rs_obj00_type;

    /**
     * Range: 0..1 (0..1 bit)
     * Scale: 1
     * Offset: 0
     */
    uint8_t rs_obj00_valid_flag;

    /**
     * Range: 0..1 (0..1 bit)
     * Scale: 1
     * Offset: 0
     */
    uint8_t rs_obj00_meas_flag;

    /**
     * Range: 0..255 (0..255 bit)
     * Scale: 1
     * Offset: 0
     */
    uint8_t rs_obj00_msg01_check_sum;
};

/**
 * Signals in message RS_Obj_00_Part02.
 *
 * All signal values are as on the CAN bus.
 */
struct mc1_fmr_rs_obj_00_part02_t {
    /**
     * Range: 0..255 (-25.6..25.4 m/s2)
     * Scale: 0.2
     * Offset: -25.6
     */
    uint8_t rs_obj00_x_acc_absolute;

    /**
     * Range: 0..255 (-25.6..25.4 m/s2)
     * Scale: 0.2
     * Offset: -25.6
     */
    uint8_t rs_obj00_y_acc_absolute;

    /**
     * Range: -64..63 (-3.09248..3.14157 rad)
     * Scale: 0.049087
     * Offset: 0.049087
     */
    int8_t rs_obj00_heading;

    /**
     * Range: 0..1 (0..1 bit)
     * Scale: 1
     * Offset: 0
     */
    uint8_t rs_obj00_ctrk_ind;

    /**
     * Range: 0..2047 (-102.4..102.3 m/s)
     * Scale: 0.1
     * Offset: -102.4
     */
    uint16_t rs_obj00_x_vel_absolute;

    /**
     * Range: 0..2047 (-102.4..102.3 m/s)
     * Scale: 0.1
     * Offset: -102.4
     */
    uint16_t rs_obj00_y_vel_absolute;

    /**
     * Range: 0..63 (0..100 %)
     * Scale: 1.5873
     * Offset: 0
     */
    uint8_t rs_obj00_classconf;

    /**
     * Range: 0..15 (0..15 bit)
     * Scale: 1
     * Offset: 0
     */
    uint8_t rs_obj00_msg02_alive_counter;

    /**
     * Range: 0..255 (0..255 bit)
     * Scale: 1
     * Offset: 0
     */
    uint8_t rs_obj00_msg02_check_sum;
};

/**
 * Signals in message RS_Obj_00_Part03.
 *
 * All signal values are as on the CAN bus.
 */
struct mc1_fmr_rs_obj_00_part03_t {
    /**
     * Range: 0..63 (0..12.6 m)
     * Scale: 0.2
     * Offset: 0
     */
    uint8_t rs_obj00_x_pos_stdev;

    /**
     * Range: 0..63 (0..12.6 m)
     * Scale: 0.2
     * Offset: 0
     */
    uint8_t rs_obj00_y_pos_stdev;

    /**
     * Range: 0..63 (0..12.6 m/s)
     * Scale: 0.2
     * Offset: 0
     */
    uint8_t rs_obj00_x_vel_rel_stdev;

    /**
     * Range: 0..63 (0..12.6 m/s)
     * Scale: 0.2
     * Offset: 0
     */
    uint8_t rs_obj00_y_vel_rel_stdev;

    /**
     * Range: 0..63 (0..12.6 m/s2)
     * Scale: 0.2
     * Offset: 0
     */
    uint8_t rs_obj00_x_acc_rel_stdev;

    /**
     * Range: 0..63 (0..12.6 m/s2)
     * Scale: 0.2
     * Offset: 0
     */
    uint8_t rs_obj00_y_acc_rel_stdev;

    /**
     * Range: 0..63 (0..63 bit)
     * Scale: 1
     * Offset: 0
     */
    uint8_t rs_obj00_exst_prob;

    /**
     * Range: 0..15 (0..15 bit)
     * Scale: 1
     * Offset: 0
     */
    uint8_t rs_obj00_msg03_alive_counter;

    /**
     * Range: 0..255 (0..255 bit)
     * Scale: 1
     * Offset: 0
     */
    uint8_t rs_obj00_msg03_check_sum;
};

/**
 * Pack message RS_Obj_00_Part04.
 *
 * @param[out] dst_p Buffer to pack the message into.
 * @param[in] src_p Data to pack.
 * @param[in] size Size of dst_p.
 *
 * @return Size of packed data, or negative error code.
 */
int mc1_fmr_rs_obj_00_part04_pack(
    uint8_t *dst_p,
    const struct mc1_fmr_rs_obj_00_part04_t *src_p,
    size_t size);

/**
 * Unpack message RS_Obj_00_Part04.
 *
 * @param[out] dst_p Object to unpack the message into.
 * @param[in] src_p Message to unpack.
 * @param[in] size Size of src_p.
 *
 * @return zero(0) or negative error code.
 */
int mc1_fmr_rs_obj_00_part04_unpack(
    struct mc1_fmr_rs_obj_00_part04_t *dst_p,
    const uint8_t *src_p,
    size_t size);

/**
 * Init message fields to default values from RS_Obj_00_Part04.
 *
 * @param[in] msg_p Message to init.
 *
 * @return zero(0) on success or (-1) in case of nullptr argument.
 */
int mc1_fmr_rs_obj_00_part04_init(struct mc1_fmr_rs_obj_00_part04_t *msg_p);

/**
 * Encode given signal by applying scaling and offset.
 *
 * @param[in] value Signal to encode.
 *
 * @return Encoded signal.
 */
uint8_t mc1_fmr_rs_obj_00_part04_rs_obj00_length_encode(double value);

/**
 * Decode given signal by applying scaling and offset.
 *
 * @param[in] value Signal to decode.
 *
 * @return Decoded signal.
 */
double mc1_fmr_rs_obj_00_part04_rs_obj00_length_decode(uint8_t value);

/**
 * Check that given signal is in allowed range.
 *
 * @param[in] value Signal to check.
 *
 * @return true if in range, false otherwise.
 */
bool mc1_fmr_rs_obj_00_part04_rs_obj00_length_is_in_range(uint8_t value);

/**
 * Encode given signal by applying scaling and offset.
 *
 * @param[in] value Signal to encode.
 *
 * @return Encoded signal.
 */
uint8_t mc1_fmr_rs_obj_00_part04_rs_obj00_width_encode(double value);

/**
 * Decode given signal by applying scaling and offset.
 *
 * @param[in] value Signal to decode.
 *
 * @return Decoded signal.
 */
double mc1_fmr_rs_obj_00_part04_rs_obj00_width_decode(uint8_t value);

/**
 * Check that given signal is in allowed range.
 *
 * @param[in] value Signal to check.
 *
 * @return true if in range, false otherwise.
 */
bool mc1_fmr_rs_obj_00_part04_rs_obj00_width_is_in_range(uint8_t value);

/**
 * Pack message RS_Obj_FD.
 *
 * @param[out] dst_p Buffer to pack the message into.
 * @param[in] src_p Data to pack.
 * @param[in] size Size of dst_p.
 *
 * @return Size of packed data, or negative error code.
 */
int mc1_fmr_rs_obj_fd_pack(
    uint8_t *dst_p,
    const struct mc1_fmr_rs_obj_fd_t *src_p,
    size_t size);

/**
 * Unpack message RS_Obj_FD.
 *
 * @param[out] dst_p Object to unpack the message into.
 * @param[in] src_p Message to unpack.
 * @param[in] size Size of src_p.
 *
 * @return zero(0) or negative error code.
 */
int mc1_fmr_rs_obj_fd_unpack(
    struct mc1_fmr_rs_obj_fd_t *dst_p,
    const uint8_t *src_p,
    size_t size);

/**
 * Init message fields to default values from RS_Obj_FD.
 *
 * @param[in] msg_p Message to init.
 *
 * @return zero(0) on success or (-1) in case of nullptr argument.
 */
int mc1_fmr_rs_obj_fd_init(struct mc1_fmr_rs_obj_fd_t *msg_p);

/**
 * Encode given signal by applying scaling and offset.
 *
 * @param[in] value Signal to encode.
 *
 * @return Encoded signal.
 */
uint16_t mc1_fmr_rs_obj_fd_rs_obj00_id_encode(double value);

/**
 * Decode given signal by applying scaling and offset.
 *
 * @param[in] value Signal to decode.
 *
 * @return Decoded signal.
 */
double mc1_fmr_rs_obj_fd_rs_obj00_id_decode(uint16_t value);

/**
 * Check that given signal is in allowed range.
 *
 * @param[in] value Signal to check.
 *
 * @return true if in range, false otherwise.
 */
bool mc1_fmr_rs_obj_fd_rs_obj00_id_is_in_range(uint16_t value);

/**
 * Encode given signal by applying scaling and offset.
 *
 * @param[in] value Signal to encode.
 *
 * @return Encoded signal.
 */
uint8_t mc1_fmr_rs_obj_fd_rs_obj00_motion_pattern_encode(double value);

/**
 * Decode given signal by applying scaling and offset.
 *
 * @param[in] value Signal to decode.
 *
 * @return Decoded signal.
 */
double mc1_fmr_rs_obj_fd_rs_obj00_motion_pattern_decode(uint8_t value);

/**
 * Check that given signal is in allowed range.
 *
 * @param[in] value Signal to check.
 *
 * @return true if in range, false otherwise.
 */
bool mc1_fmr_rs_obj_fd_rs_obj00_motion_pattern_is_in_range(uint8_t value);

/**
 * Encode given signal by applying scaling and offset.
 *
 * @param[in] value Signal to encode.
 *
 * @return Encoded signal.
 */
uint16_t mc1_fmr_rs_obj_fd_rs_obj00_x_pos_encode(double value);

/**
 * Decode given signal by applying scaling and offset.
 *
 * @param[in] value Signal to decode.
 *
 * @return Decoded signal.
 */
double mc1_fmr_rs_obj_fd_rs_obj00_x_pos_decode(uint16_t value);

/**
 * Check that given signal is in allowed range.
 *
 * @param[in] value Signal to check.
 *
 * @return true if in range, false otherwise.
 */
bool mc1_fmr_rs_obj_fd_rs_obj00_x_pos_is_in_range(uint16_t value);

/**
 * Encode given signal by applying scaling and offset.
 *
 * @param[in] value Signal to encode.
 *
 * @return Encoded signal.
 */
uint8_t mc1_fmr_rs_obj_fd_rs_obj00_elev_class_encode(double value);

/**
 * Decode given signal by applying scaling and offset.
 *
 * @param[in] value Signal to decode.
 *
 * @return Decoded signal.
 */
double mc1_fmr_rs_obj_fd_rs_obj00_elev_class_decode(uint8_t value);

/**
 * Check that given signal is in allowed range.
 *
 * @param[in] value Signal to check.
 *
 * @return true if in range, false otherwise.
 */
bool mc1_fmr_rs_obj_fd_rs_obj00_elev_class_is_in_range(uint8_t value);

/**
 * Encode given signal by applying scaling and offset.
 *
 * @param[in] value Signal to encode.
 *
 * @return Encoded signal.
 */
uint16_t mc1_fmr_rs_obj_fd_rs_obj00_y_pos_encode(double value);

/**
 * Decode given signal by applying scaling and offset.
 *
 * @param[in] value Signal to decode.
 *
 * @return Decoded signal.
 */
double mc1_fmr_rs_obj_fd_rs_obj00_y_pos_decode(uint16_t value);

/**
 * Check that given signal is in allowed range.
 *
 * @param[in] value Signal to check.
 *
 * @return true if in range, false otherwise.
 */
bool mc1_fmr_rs_obj_fd_rs_obj00_y_pos_is_in_range(uint16_t value);

/**
 * Encode given signal by applying scaling and offset.
 *
 * @param[in] value Signal to encode.
 *
 * @return Encoded signal.
 */
uint8_t mc1_fmr_rs_obj_fd_rs_obj00_elev_conf_encode(double value);

/**
 * Decode given signal by applying scaling and offset.
 *
 * @param[in] value Signal to decode.
 *
 * @return Decoded signal.
 */
double mc1_fmr_rs_obj_fd_rs_obj00_elev_conf_decode(uint8_t value);

/**
 * Check that given signal is in allowed range.
 *
 * @param[in] value Signal to check.
 *
 * @return true if in range, false otherwise.
 */
bool mc1_fmr_rs_obj_fd_rs_obj00_elev_conf_is_in_range(uint8_t value);

/**
 * Encode given signal by applying scaling and offset.
 *
 * @param[in] value Signal to encode.
 *
 * @return Encoded signal.
 */
uint8_t mc1_fmr_rs_obj_fd_rs_obj00_msg01_alive_counter_encode(double value);

/**
 * Decode given signal by applying scaling and offset.
 *
 * @param[in] value Signal to decode.
 *
 * @return Decoded signal.
 */
double mc1_fmr_rs_obj_fd_rs_obj00_msg01_alive_counter_decode(uint8_t value);

/**
 * Check that given signal is in allowed range.
 *
 * @param[in] value Signal to check.
 *
 * @return true if in range, false otherwise.
 */
bool mc1_fmr_rs_obj_fd_rs_obj00_msg01_alive_counter_is_in_range(uint8_t value);

/**
 * Encode given signal by applying scaling and offset.
 *
 * @param[in] value Signal to encode.
 *
 * @return Encoded signal.
 */
uint8_t mc1_fmr_rs_obj_fd_rs_obj00_type_encode(double value);

/**
 * Decode given signal by applying scaling and offset.
 *
 * @param[in] value Signal to decode.
 *
 * @return Decoded signal.
 */
double mc1_fmr_rs_obj_fd_rs_obj00_type_decode(uint8_t value);

/**
 * Check that given signal is in allowed range.
 *
 * @param[in] value Signal to check.
 *
 * @return true if in range, false otherwise.
 */
bool mc1_fmr_rs_obj_fd_rs_obj00_type_is_in_range(uint8_t value);

/**
 * Encode given signal by applying scaling and offset.
 *
 * @param[in] value Signal to encode.
 *
 * @return Encoded signal.
 */
uint8_t mc1_fmr_rs_obj_fd_rs_obj00_valid_flag_encode(double value);

/**
 * Decode given signal by applying scaling and offset.
 *
 * @param[in] value Signal to decode.
 *
 * @return Decoded signal.
 */
double mc1_fmr_rs_obj_fd_rs_obj00_valid_flag_decode(uint8_t value);

/**
 * Check that given signal is in allowed range.
 *
 * @param[in] value Signal to check.
 *
 * @return true if in range, false otherwise.
 */
bool mc1_fmr_rs_obj_fd_rs_obj00_valid_flag_is_in_range(uint8_t value);

/**
 * Encode given signal by applying scaling and offset.
 *
 * @param[in] value Signal to encode.
 *
 * @return Encoded signal.
 */
uint8_t mc1_fmr_rs_obj_fd_rs_obj00_meas_flag_encode(double value);

/**
 * Decode given signal by applying scaling and offset.
 *
 * @param[in] value Signal to decode.
 *
 * @return Decoded signal.
 */
double mc1_fmr_rs_obj_fd_rs_obj00_meas_flag_decode(uint8_t value);

/**
 * Check that given signal is in allowed range.
 *
 * @param[in] value Signal to check.
 *
 * @return true if in range, false otherwise.
 */
bool mc1_fmr_rs_obj_fd_rs_obj00_meas_flag_is_in_range(uint8_t value);

/**
 * Encode given signal by applying scaling and offset.
 *
 * @param[in] value Signal to encode.
 *
 * @return Encoded signal.
 */
uint8_t mc1_fmr_rs_obj_fd_rs_obj00_msg01_check_sum_encode(double value);

/**
 * Decode given signal by applying scaling and offset.
 *
 * @param[in] value Signal to decode.
 *
 * @return Decoded signal.
 */
double mc1_fmr_rs_obj_fd_rs_obj00_msg01_check_sum_decode(uint8_t value);

/**
 * Check that given signal is in allowed range.
 *
 * @param[in] value Signal to check.
 *
 * @return true if in range, false otherwise.
 */
bool mc1_fmr_rs_obj_fd_rs_obj00_msg01_check_sum_is_in_range(uint8_t value);

/**
 * Encode given signal by applying scaling and offset.
 *
 * @param[in] value Signal to encode.
 *
 * @return Encoded signal.
 */
uint8_t mc1_fmr_rs_obj_fd_rs_obj00_x_acc_absolute_encode(double value);

/**
 * Decode given signal by applying scaling and offset.
 *
 * @param[in] value Signal to decode.
 *
 * @return Decoded signal.
 */
double mc1_fmr_rs_obj_fd_rs_obj00_x_acc_absolute_decode(uint8_t value);

/**
 * Check that given signal is in allowed range.
 *
 * @param[in] value Signal to check.
 *
 * @return true if in range, false otherwise.
 */
bool mc1_fmr_rs_obj_fd_rs_obj00_x_acc_absolute_is_in_range(uint8_t value);

/**
 * Encode given signal by applying scaling and offset.
 *
 * @param[in] value Signal to encode.
 *
 * @return Encoded signal.
 */
uint8_t mc1_fmr_rs_obj_fd_rs_obj00_y_acc_absolute_encode(double value);

/**
 * Decode given signal by applying scaling and offset.
 *
 * @param[in] value Signal to decode.
 *
 * @return Decoded signal.
 */
double mc1_fmr_rs_obj_fd_rs_obj00_y_acc_absolute_decode(uint8_t value);

/**
 * Check that given signal is in allowed range.
 *
 * @param[in] value Signal to check.
 *
 * @return true if in range, false otherwise.
 */
bool mc1_fmr_rs_obj_fd_rs_obj00_y_acc_absolute_is_in_range(uint8_t value);

/**
 * Encode given signal by applying scaling and offset.
 *
 * @param[in] value Signal to encode.
 *
 * @return Encoded signal.
 */
uint8_t mc1_fmr_rs_obj_fd_rs_obj00_heading_encode(double value);

/**
 * Decode given signal by applying scaling and offset.
 *
 * @param[in] value Signal to decode.
 *
 * @return Decoded signal.
 */
double mc1_fmr_rs_obj_fd_rs_obj00_heading_decode(uint8_t value);

/**
 * Check that given signal is in allowed range.
 *
 * @param[in] value Signal to check.
 *
 * @return true if in range, false otherwise.
 */
bool mc1_fmr_rs_obj_fd_rs_obj00_heading_is_in_range(uint8_t value);

/**
 * Encode given signal by applying scaling and offset.
 *
 * @param[in] value Signal to encode.
 *
 * @return Encoded signal.
 */
uint8_t mc1_fmr_rs_obj_fd_rs_obj00_ctrk_ind_encode(double value);

/**
 * Decode given signal by applying scaling and offset.
 *
 * @param[in] value Signal to decode.
 *
 * @return Decoded signal.
 */
double mc1_fmr_rs_obj_fd_rs_obj00_ctrk_ind_decode(uint8_t value);

/**
 * Check that given signal is in allowed range.
 *
 * @param[in] value Signal to check.
 *
 * @return true if in range, false otherwise.
 */
bool mc1_fmr_rs_obj_fd_rs_obj00_ctrk_ind_is_in_range(uint8_t value);

/**
 * Encode given signal by applying scaling and offset.
 *
 * @param[in] value Signal to encode.
 *
 * @return Encoded signal.
 */
uint16_t mc1_fmr_rs_obj_fd_rs_obj00_x_vel_absolute_encode(double value);

/**
 * Decode given signal by applying scaling and offset.
 *
 * @param[in] value Signal to decode.
 *
 * @return Decoded signal.
 */
double mc1_fmr_rs_obj_fd_rs_obj00_x_vel_absolute_decode(uint16_t value);

/**
 * Check that given signal is in allowed range.
 *
 * @param[in] value Signal to check.
 *
 * @return true if in range, false otherwise.
 */
bool mc1_fmr_rs_obj_fd_rs_obj00_x_vel_absolute_is_in_range(uint16_t value);

/**
 * Encode given signal by applying scaling and offset.
 *
 * @param[in] value Signal to encode.
 *
 * @return Encoded signal.
 */
uint16_t mc1_fmr_rs_obj_fd_rs_obj00_y_vel_absolute_encode(double value);

/**
 * Decode given signal by applying scaling and offset.
 *
 * @param[in] value Signal to decode.
 *
 * @return Decoded signal.
 */
double mc1_fmr_rs_obj_fd_rs_obj00_y_vel_absolute_decode(uint16_t value);

/**
 * Check that given signal is in allowed range.
 *
 * @param[in] value Signal to check.
 *
 * @return true if in range, false otherwise.
 */
bool mc1_fmr_rs_obj_fd_rs_obj00_y_vel_absolute_is_in_range(uint16_t value);

/**
 * Encode given signal by applying scaling and offset.
 *
 * @param[in] value Signal to encode.
 *
 * @return Encoded signal.
 */
uint8_t mc1_fmr_rs_obj_fd_rs_obj00_classconf_encode(double value);

/**
 * Decode given signal by applying scaling and offset.
 *
 * @param[in] value Signal to decode.
 *
 * @return Decoded signal.
 */
double mc1_fmr_rs_obj_fd_rs_obj00_classconf_decode(uint8_t value);

/**
 * Check that given signal is in allowed range.
 *
 * @param[in] value Signal to check.
 *
 * @return true if in range, false otherwise.
 */
bool mc1_fmr_rs_obj_fd_rs_obj00_classconf_is_in_range(uint8_t value);

/**
 * Encode given signal by applying scaling and offset.
 *
 * @param[in] value Signal to encode.
 *
 * @return Encoded signal.
 */
uint8_t mc1_fmr_rs_obj_fd_rs_obj00_msg02_alive_counter_encode(double value);

/**
 * Decode given signal by applying scaling and offset.
 *
 * @param[in] value Signal to decode.
 *
 * @return Decoded signal.
 */
double mc1_fmr_rs_obj_fd_rs_obj00_msg02_alive_counter_decode(uint8_t value);

/**
 * Check that given signal is in allowed range.
 *
 * @param[in] value Signal to check.
 *
 * @return true if in range, false otherwise.
 */
bool mc1_fmr_rs_obj_fd_rs_obj00_msg02_alive_counter_is_in_range(uint8_t value);

/**
 * Encode given signal by applying scaling and offset.
 *
 * @param[in] value Signal to encode.
 *
 * @return Encoded signal.
 */
uint8_t mc1_fmr_rs_obj_fd_rs_obj00_msg02_check_sum_encode(double value);

/**
 * Decode given signal by applying scaling and offset.
 *
 * @param[in] value Signal to decode.
 *
 * @return Decoded signal.
 */
double mc1_fmr_rs_obj_fd_rs_obj00_msg02_check_sum_decode(uint8_t value);

/**
 * Check that given signal is in allowed range.
 *
 * @param[in] value Signal to check.
 *
 * @return true if in range, false otherwise.
 */
bool mc1_fmr_rs_obj_fd_rs_obj00_msg02_check_sum_is_in_range(uint8_t value);

/**
 * Encode given signal by applying scaling and offset.
 *
 * @param[in] value Signal to encode.
 *
 * @return Encoded signal.
 */
uint8_t mc1_fmr_rs_obj_fd_rs_obj00_x_pos_stdev_encode(double value);

/**
 * Decode given signal by applying scaling and offset.
 *
 * @param[in] value Signal to decode.
 *
 * @return Decoded signal.
 */
double mc1_fmr_rs_obj_fd_rs_obj00_x_pos_stdev_decode(uint8_t value);

/**
 * Check that given signal is in allowed range.
 *
 * @param[in] value Signal to check.
 *
 * @return true if in range, false otherwise.
 */
bool mc1_fmr_rs_obj_fd_rs_obj00_x_pos_stdev_is_in_range(uint8_t value);

/**
 * Encode given signal by applying scaling and offset.
 *
 * @param[in] value Signal to encode.
 *
 * @return Encoded signal.
 */
uint8_t mc1_fmr_rs_obj_fd_rs_obj00_y_pos_stdev_encode(double value);

/**
 * Decode given signal by applying scaling and offset.
 *
 * @param[in] value Signal to decode.
 *
 * @return Decoded signal.
 */
double mc1_fmr_rs_obj_fd_rs_obj00_y_pos_stdev_decode(uint8_t value);

/**
 * Check that given signal is in allowed range.
 *
 * @param[in] value Signal to check.
 *
 * @return true if in range, false otherwise.
 */
bool mc1_fmr_rs_obj_fd_rs_obj00_y_pos_stdev_is_in_range(uint8_t value);

/**
 * Encode given signal by applying scaling and offset.
 *
 * @param[in] value Signal to encode.
 *
 * @return Encoded signal.
 */
uint8_t mc1_fmr_rs_obj_fd_rs_obj00_x_vel_rel_stdev_encode(double value);

/**
 * Decode given signal by applying scaling and offset.
 *
 * @param[in] value Signal to decode.
 *
 * @return Decoded signal.
 */
double mc1_fmr_rs_obj_fd_rs_obj00_x_vel_rel_stdev_decode(uint8_t value);

/**
 * Check that given signal is in allowed range.
 *
 * @param[in] value Signal to check.
 *
 * @return true if in range, false otherwise.
 */
bool mc1_fmr_rs_obj_fd_rs_obj00_x_vel_rel_stdev_is_in_range(uint8_t value);

/**
 * Encode given signal by applying scaling and offset.
 *
 * @param[in] value Signal to encode.
 *
 * @return Encoded signal.
 */
uint8_t mc1_fmr_rs_obj_fd_rs_obj00_y_vel_rel_stdev_encode(double value);

/**
 * Decode given signal by applying scaling and offset.
 *
 * @param[in] value Signal to decode.
 *
 * @return Decoded signal.
 */
double mc1_fmr_rs_obj_fd_rs_obj00_y_vel_rel_stdev_decode(uint8_t value);

/**
 * Check that given signal is in allowed range.
 *
 * @param[in] value Signal to check.
 *
 * @return true if in range, false otherwise.
 */
bool mc1_fmr_rs_obj_fd_rs_obj00_y_vel_rel_stdev_is_in_range(uint8_t value);

/**
 * Encode given signal by applying scaling and offset.
 *
 * @param[in] value Signal to encode.
 *
 * @return Encoded signal.
 */
uint8_t mc1_fmr_rs_obj_fd_rs_obj00_x_acc_rel_stdev_encode(double value);

/**
 * Decode given signal by applying scaling and offset.
 *
 * @param[in] value Signal to decode.
 *
 * @return Decoded signal.
 */
double mc1_fmr_rs_obj_fd_rs_obj00_x_acc_rel_stdev_decode(uint8_t value);

/**
 * Check that given signal is in allowed range.
 *
 * @param[in] value Signal to check.
 *
 * @return true if in range, false otherwise.
 */
bool mc1_fmr_rs_obj_fd_rs_obj00_x_acc_rel_stdev_is_in_range(uint8_t value);

/**
 * Encode given signal by applying scaling and offset.
 *
 * @param[in] value Signal to encode.
 *
 * @return Encoded signal.
 */
uint8_t mc1_fmr_rs_obj_fd_rs_obj00_y_acc_rel_stdev_encode(double value);

/**
 * Decode given signal by applying scaling and offset.
 *
 * @param[in] value Signal to decode.
 *
 * @return Decoded signal.
 */
double mc1_fmr_rs_obj_fd_rs_obj00_y_acc_rel_stdev_decode(uint8_t value);

/**
 * Check that given signal is in allowed range.
 *
 * @param[in] value Signal to check.
 *
 * @return true if in range, false otherwise.
 */
bool mc1_fmr_rs_obj_fd_rs_obj00_y_acc_rel_stdev_is_in_range(uint8_t value);

/**
 * Encode given signal by applying scaling and offset.
 *
 * @param[in] value Signal to encode.
 *
 * @return Encoded signal.
 */
uint8_t mc1_fmr_rs_obj_fd_rs_obj00_exst_prob_encode(double value);

/**
 * Decode given signal by applying scaling and offset.
 *
 * @param[in] value Signal to decode.
 *
 * @return Decoded signal.
 */
double mc1_fmr_rs_obj_fd_rs_obj00_exst_prob_decode(uint8_t value);

/**
 * Check that given signal is in allowed range.
 *
 * @param[in] value Signal to check.
 *
 * @return true if in range, false otherwise.
 */
bool mc1_fmr_rs_obj_fd_rs_obj00_exst_prob_is_in_range(uint8_t value);

/**
 * Encode given signal by applying scaling and offset.
 *
 * @param[in] value Signal to encode.
 *
 * @return Encoded signal.
 */
uint8_t mc1_fmr_rs_obj_fd_rs_obj00_msg03_alive_counter_encode(double value);

/**
 * Decode given signal by applying scaling and offset.
 *
 * @param[in] value Signal to decode.
 *
 * @return Decoded signal.
 */
double mc1_fmr_rs_obj_fd_rs_obj00_msg03_alive_counter_decode(uint8_t value);

/**
 * Check that given signal is in allowed range.
 *
 * @param[in] value Signal to check.
 *
 * @return true if in range, false otherwise.
 */
bool mc1_fmr_rs_obj_fd_rs_obj00_msg03_alive_counter_is_in_range(uint8_t value);

/**
 * Encode given signal by applying scaling and offset.
 *
 * @param[in] value Signal to encode.
 *
 * @return Encoded signal.
 */
uint8_t mc1_fmr_rs_obj_fd_rs_obj00_msg03_check_sum_encode(double value);

/**
 * Decode given signal by applying scaling and offset.
 *
 * @param[in] value Signal to decode.
 *
 * @return Decoded signal.
 */
double mc1_fmr_rs_obj_fd_rs_obj00_msg03_check_sum_decode(uint8_t value);

/**
 * Check that given signal is in allowed range.
 *
 * @param[in] value Signal to check.
 *
 * @return true if in range, false otherwise.
 */
bool mc1_fmr_rs_obj_fd_rs_obj00_msg03_check_sum_is_in_range(uint8_t value);

/**
 * Encode given signal by applying scaling and offset.
 *
 * @param[in] value Signal to encode.
 *
 * @return Encoded signal.
 */
uint8_t mc1_fmr_rs_obj_fd_rs_obj00_length_encode(double value);

/**
 * Decode given signal by applying scaling and offset.
 *
 * @param[in] value Signal to decode.
 *
 * @return Decoded signal.
 */
double mc1_fmr_rs_obj_fd_rs_obj00_length_decode(uint8_t value);

/**
 * Check that given signal is in allowed range.
 *
 * @param[in] value Signal to check.
 *
 * @return true if in range, false otherwise.
 */
bool mc1_fmr_rs_obj_fd_rs_obj00_length_is_in_range(uint8_t value);

/**
 * Encode given signal by applying scaling and offset.
 *
 * @param[in] value Signal to encode.
 *
 * @return Encoded signal.
 */
uint8_t mc1_fmr_rs_obj_fd_rs_obj00_width_encode(double value);

/**
 * Decode given signal by applying scaling and offset.
 *
 * @param[in] value Signal to decode.
 *
 * @return Decoded signal.
 */
double mc1_fmr_rs_obj_fd_rs_obj00_width_decode(uint8_t value);

/**
 * Check that given signal is in allowed range.
 *
 * @param[in] value Signal to check.
 *
 * @return true if in range, false otherwise.
 */
bool mc1_fmr_rs_obj_fd_rs_obj00_width_is_in_range(uint8_t value);

/**
 * Encode given signal by applying scaling and offset.
 *
 * @param[in] value Signal to encode.
 *
 * @return Encoded signal.
 */
uint16_t mc1_fmr_rs_obj_fd_rs_obj01_id_encode(double value);

/**
 * Decode given signal by applying scaling and offset.
 *
 * @param[in] value Signal to decode.
 *
 * @return Decoded signal.
 */
double mc1_fmr_rs_obj_fd_rs_obj01_id_decode(uint16_t value);

/**
 * Check that given signal is in allowed range.
 *
 * @param[in] value Signal to check.
 *
 * @return true if in range, false otherwise.
 */
bool mc1_fmr_rs_obj_fd_rs_obj01_id_is_in_range(uint16_t value);

/**
 * Encode given signal by applying scaling and offset.
 *
 * @param[in] value Signal to encode.
 *
 * @return Encoded signal.
 */
uint8_t mc1_fmr_rs_obj_fd_rs_obj01_motion_pattern_encode(double value);

/**
 * Decode given signal by applying scaling and offset.
 *
 * @param[in] value Signal to decode.
 *
 * @return Decoded signal.
 */
double mc1_fmr_rs_obj_fd_rs_obj01_motion_pattern_decode(uint8_t value);

/**
 * Check that given signal is in allowed range.
 *
 * @param[in] value Signal to check.
 *
 * @return true if in range, false otherwise.
 */
bool mc1_fmr_rs_obj_fd_rs_obj01_motion_pattern_is_in_range(uint8_t value);

/**
 * Encode given signal by applying scaling and offset.
 *
 * @param[in] value Signal to encode.
 *
 * @return Encoded signal.
 */
uint16_t mc1_fmr_rs_obj_fd_rs_obj01_x_pos_encode(double value);

/**
 * Decode given signal by applying scaling and offset.
 *
 * @param[in] value Signal to decode.
 *
 * @return Decoded signal.
 */
double mc1_fmr_rs_obj_fd_rs_obj01_x_pos_decode(uint16_t value);

/**
 * Check that given signal is in allowed range.
 *
 * @param[in] value Signal to check.
 *
 * @return true if in range, false otherwise.
 */
bool mc1_fmr_rs_obj_fd_rs_obj01_x_pos_is_in_range(uint16_t value);

/**
 * Encode given signal by applying scaling and offset.
 *
 * @param[in] value Signal to encode.
 *
 * @return Encoded signal.
 */
uint8_t mc1_fmr_rs_obj_fd_rs_obj01_elev_class_encode(double value);

/**
 * Decode given signal by applying scaling and offset.
 *
 * @param[in] value Signal to decode.
 *
 * @return Decoded signal.
 */
double mc1_fmr_rs_obj_fd_rs_obj01_elev_class_decode(uint8_t value);

/**
 * Check that given signal is in allowed range.
 *
 * @param[in] value Signal to check.
 *
 * @return true if in range, false otherwise.
 */
bool mc1_fmr_rs_obj_fd_rs_obj01_elev_class_is_in_range(uint8_t value);

/**
 * Encode given signal by applying scaling and offset.
 *
 * @param[in] value Signal to encode.
 *
 * @return Encoded signal.
 */
uint16_t mc1_fmr_rs_obj_fd_rs_obj01_y_pos_encode(double value);

/**
 * Decode given signal by applying scaling and offset.
 *
 * @param[in] value Signal to decode.
 *
 * @return Decoded signal.
 */
double mc1_fmr_rs_obj_fd_rs_obj01_y_pos_decode(uint16_t value);

/**
 * Check that given signal is in allowed range.
 *
 * @param[in] value Signal to check.
 *
 * @return true if in range, false otherwise.
 */
bool mc1_fmr_rs_obj_fd_rs_obj01_y_pos_is_in_range(uint16_t value);

/**
 * Encode given signal by applying scaling and offset.
 *
 * @param[in] value Signal to encode.
 *
 * @return Encoded signal.
 */
uint8_t mc1_fmr_rs_obj_fd_rs_obj01_elev_conf_encode(double value);

/**
 * Decode given signal by applying scaling and offset.
 *
 * @param[in] value Signal to decode.
 *
 * @return Decoded signal.
 */
double mc1_fmr_rs_obj_fd_rs_obj01_elev_conf_decode(uint8_t value);

/**
 * Check that given signal is in allowed range.
 *
 * @param[in] value Signal to check.
 *
 * @return true if in range, false otherwise.
 */
bool mc1_fmr_rs_obj_fd_rs_obj01_elev_conf_is_in_range(uint8_t value);

/**
 * Encode given signal by applying scaling and offset.
 *
 * @param[in] value Signal to encode.
 *
 * @return Encoded signal.
 */
uint8_t mc1_fmr_rs_obj_fd_rs_obj01_msg01_alive_counter_encode(double value);

/**
 * Decode given signal by applying scaling and offset.
 *
 * @param[in] value Signal to decode.
 *
 * @return Decoded signal.
 */
double mc1_fmr_rs_obj_fd_rs_obj01_msg01_alive_counter_decode(uint8_t value);

/**
 * Check that given signal is in allowed range.
 *
 * @param[in] value Signal to check.
 *
 * @return true if in range, false otherwise.
 */
bool mc1_fmr_rs_obj_fd_rs_obj01_msg01_alive_counter_is_in_range(uint8_t value);

/**
 * Encode given signal by applying scaling and offset.
 *
 * @param[in] value Signal to encode.
 *
 * @return Encoded signal.
 */
uint8_t mc1_fmr_rs_obj_fd_rs_obj01_type_encode(double value);

/**
 * Decode given signal by applying scaling and offset.
 *
 * @param[in] value Signal to decode.
 *
 * @return Decoded signal.
 */
double mc1_fmr_rs_obj_fd_rs_obj01_type_decode(uint8_t value);

/**
 * Check that given signal is in allowed range.
 *
 * @param[in] value Signal to check.
 *
 * @return true if in range, false otherwise.
 */
bool mc1_fmr_rs_obj_fd_rs_obj01_type_is_in_range(uint8_t value);

/**
 * Encode given signal by applying scaling and offset.
 *
 * @param[in] value Signal to encode.
 *
 * @return Encoded signal.
 */
uint8_t mc1_fmr_rs_obj_fd_rs_obj01_valid_flag_encode(double value);

/**
 * Decode given signal by applying scaling and offset.
 *
 * @param[in] value Signal to decode.
 *
 * @return Decoded signal.
 */
double mc1_fmr_rs_obj_fd_rs_obj01_valid_flag_decode(uint8_t value);

/**
 * Check that given signal is in allowed range.
 *
 * @param[in] value Signal to check.
 *
 * @return true if in range, false otherwise.
 */
bool mc1_fmr_rs_obj_fd_rs_obj01_valid_flag_is_in_range(uint8_t value);

/**
 * Encode given signal by applying scaling and offset.
 *
 * @param[in] value Signal to encode.
 *
 * @return Encoded signal.
 */
uint8_t mc1_fmr_rs_obj_fd_rs_obj01_meas_flag_encode(double value);

/**
 * Decode given signal by applying scaling and offset.
 *
 * @param[in] value Signal to decode.
 *
 * @return Decoded signal.
 */
double mc1_fmr_rs_obj_fd_rs_obj01_meas_flag_decode(uint8_t value);

/**
 * Check that given signal is in allowed range.
 *
 * @param[in] value Signal to check.
 *
 * @return true if in range, false otherwise.
 */
bool mc1_fmr_rs_obj_fd_rs_obj01_meas_flag_is_in_range(uint8_t value);

/**
 * Encode given signal by applying scaling and offset.
 *
 * @param[in] value Signal to encode.
 *
 * @return Encoded signal.
 */
uint8_t mc1_fmr_rs_obj_fd_rs_obj01_msg01_check_sum_encode(double value);

/**
 * Decode given signal by applying scaling and offset.
 *
 * @param[in] value Signal to decode.
 *
 * @return Decoded signal.
 */
double mc1_fmr_rs_obj_fd_rs_obj01_msg01_check_sum_decode(uint8_t value);

/**
 * Check that given signal is in allowed range.
 *
 * @param[in] value Signal to check.
 *
 * @return true if in range, false otherwise.
 */
bool mc1_fmr_rs_obj_fd_rs_obj01_msg01_check_sum_is_in_range(uint8_t value);

/**
 * Encode given signal by applying scaling and offset.
 *
 * @param[in] value Signal to encode.
 *
 * @return Encoded signal.
 */
uint8_t mc1_fmr_rs_obj_fd_rs_obj01_x_acc_absolute_encode(double value);

/**
 * Decode given signal by applying scaling and offset.
 *
 * @param[in] value Signal to decode.
 *
 * @return Decoded signal.
 */
double mc1_fmr_rs_obj_fd_rs_obj01_x_acc_absolute_decode(uint8_t value);

/**
 * Check that given signal is in allowed range.
 *
 * @param[in] value Signal to check.
 *
 * @return true if in range, false otherwise.
 */
bool mc1_fmr_rs_obj_fd_rs_obj01_x_acc_absolute_is_in_range(uint8_t value);

/**
 * Encode given signal by applying scaling and offset.
 *
 * @param[in] value Signal to encode.
 *
 * @return Encoded signal.
 */
uint8_t mc1_fmr_rs_obj_fd_rs_obj01_y_acc_absolute_encode(double value);

/**
 * Decode given signal by applying scaling and offset.
 *
 * @param[in] value Signal to decode.
 *
 * @return Decoded signal.
 */
double mc1_fmr_rs_obj_fd_rs_obj01_y_acc_absolute_decode(uint8_t value);

/**
 * Check that given signal is in allowed range.
 *
 * @param[in] value Signal to check.
 *
 * @return true if in range, false otherwise.
 */
bool mc1_fmr_rs_obj_fd_rs_obj01_y_acc_absolute_is_in_range(uint8_t value);

/**
 * Encode given signal by applying scaling and offset.
 *
 * @param[in] value Signal to encode.
 *
 * @return Encoded signal.
 */
uint8_t mc1_fmr_rs_obj_fd_rs_obj01_heading_encode(double value);

/**
 * Decode given signal by applying scaling and offset.
 *
 * @param[in] value Signal to decode.
 *
 * @return Decoded signal.
 */
double mc1_fmr_rs_obj_fd_rs_obj01_heading_decode(uint8_t value);

/**
 * Check that given signal is in allowed range.
 *
 * @param[in] value Signal to check.
 *
 * @return true if in range, false otherwise.
 */
bool mc1_fmr_rs_obj_fd_rs_obj01_heading_is_in_range(uint8_t value);

/**
 * Encode given signal by applying scaling and offset.
 *
 * @param[in] value Signal to encode.
 *
 * @return Encoded signal.
 */
uint8_t mc1_fmr_rs_obj_fd_rs_obj01_ctrk_ind_encode(double value);

/**
 * Decode given signal by applying scaling and offset.
 *
 * @param[in] value Signal to decode.
 *
 * @return Decoded signal.
 */
double mc1_fmr_rs_obj_fd_rs_obj01_ctrk_ind_decode(uint8_t value);

/**
 * Check that given signal is in allowed range.
 *
 * @param[in] value Signal to check.
 *
 * @return true if in range, false otherwise.
 */
bool mc1_fmr_rs_obj_fd_rs_obj01_ctrk_ind_is_in_range(uint8_t value);

/**
 * Encode given signal by applying scaling and offset.
 *
 * @param[in] value Signal to encode.
 *
 * @return Encoded signal.
 */
uint16_t mc1_fmr_rs_obj_fd_rs_obj01_x_vel_absolute_encode(double value);

/**
 * Decode given signal by applying scaling and offset.
 *
 * @param[in] value Signal to decode.
 *
 * @return Decoded signal.
 */
double mc1_fmr_rs_obj_fd_rs_obj01_x_vel_absolute_decode(uint16_t value);

/**
 * Check that given signal is in allowed range.
 *
 * @param[in] value Signal to check.
 *
 * @return true if in range, false otherwise.
 */
bool mc1_fmr_rs_obj_fd_rs_obj01_x_vel_absolute_is_in_range(uint16_t value);

/**
 * Encode given signal by applying scaling and offset.
 *
 * @param[in] value Signal to encode.
 *
 * @return Encoded signal.
 */
uint16_t mc1_fmr_rs_obj_fd_rs_obj01_y_vel_absolute_encode(double value);

/**
 * Decode given signal by applying scaling and offset.
 *
 * @param[in] value Signal to decode.
 *
 * @return Decoded signal.
 */
double mc1_fmr_rs_obj_fd_rs_obj01_y_vel_absolute_decode(uint16_t value);

/**
 * Check that given signal is in allowed range.
 *
 * @param[in] value Signal to check.
 *
 * @return true if in range, false otherwise.
 */
bool mc1_fmr_rs_obj_fd_rs_obj01_y_vel_absolute_is_in_range(uint16_t value);

/**
 * Encode given signal by applying scaling and offset.
 *
 * @param[in] value Signal to encode.
 *
 * @return Encoded signal.
 */
uint8_t mc1_fmr_rs_obj_fd_rs_obj01_classconf_encode(double value);

/**
 * Decode given signal by applying scaling and offset.
 *
 * @param[in] value Signal to decode.
 *
 * @return Decoded signal.
 */
double mc1_fmr_rs_obj_fd_rs_obj01_classconf_decode(uint8_t value);

/**
 * Check that given signal is in allowed range.
 *
 * @param[in] value Signal to check.
 *
 * @return true if in range, false otherwise.
 */
bool mc1_fmr_rs_obj_fd_rs_obj01_classconf_is_in_range(uint8_t value);

/**
 * Encode given signal by applying scaling and offset.
 *
 * @param[in] value Signal to encode.
 *
 * @return Encoded signal.
 */
uint8_t mc1_fmr_rs_obj_fd_rs_obj01_msg02_alive_counter_encode(double value);

/**
 * Decode given signal by applying scaling and offset.
 *
 * @param[in] value Signal to decode.
 *
 * @return Decoded signal.
 */
double mc1_fmr_rs_obj_fd_rs_obj01_msg02_alive_counter_decode(uint8_t value);

/**
 * Check that given signal is in allowed range.
 *
 * @param[in] value Signal to check.
 *
 * @return true if in range, false otherwise.
 */
bool mc1_fmr_rs_obj_fd_rs_obj01_msg02_alive_counter_is_in_range(uint8_t value);

/**
 * Encode given signal by applying scaling and offset.
 *
 * @param[in] value Signal to encode.
 *
 * @return Encoded signal.
 */
uint8_t mc1_fmr_rs_obj_fd_rs_obj01_msg02_check_sum_encode(double value);

/**
 * Decode given signal by applying scaling and offset.
 *
 * @param[in] value Signal to decode.
 *
 * @return Decoded signal.
 */
double mc1_fmr_rs_obj_fd_rs_obj01_msg02_check_sum_decode(uint8_t value);

/**
 * Check that given signal is in allowed range.
 *
 * @param[in] value Signal to check.
 *
 * @return true if in range, false otherwise.
 */
bool mc1_fmr_rs_obj_fd_rs_obj01_msg02_check_sum_is_in_range(uint8_t value);

/**
 * Encode given signal by applying scaling and offset.
 *
 * @param[in] value Signal to encode.
 *
 * @return Encoded signal.
 */
uint8_t mc1_fmr_rs_obj_fd_rs_obj01_x_pos_stdev_encode(double value);

/**
 * Decode given signal by applying scaling and offset.
 *
 * @param[in] value Signal to decode.
 *
 * @return Decoded signal.
 */
double mc1_fmr_rs_obj_fd_rs_obj01_x_pos_stdev_decode(uint8_t value);

/**
 * Check that given signal is in allowed range.
 *
 * @param[in] value Signal to check.
 *
 * @return true if in range, false otherwise.
 */
bool mc1_fmr_rs_obj_fd_rs_obj01_x_pos_stdev_is_in_range(uint8_t value);

/**
 * Encode given signal by applying scaling and offset.
 *
 * @param[in] value Signal to encode.
 *
 * @return Encoded signal.
 */
uint8_t mc1_fmr_rs_obj_fd_rs_obj01_y_pos_stdev_encode(double value);

/**
 * Decode given signal by applying scaling and offset.
 *
 * @param[in] value Signal to decode.
 *
 * @return Decoded signal.
 */
double mc1_fmr_rs_obj_fd_rs_obj01_y_pos_stdev_decode(uint8_t value);

/**
 * Check that given signal is in allowed range.
 *
 * @param[in] value Signal to check.
 *
 * @return true if in range, false otherwise.
 */
bool mc1_fmr_rs_obj_fd_rs_obj01_y_pos_stdev_is_in_range(uint8_t value);

/**
 * Encode given signal by applying scaling and offset.
 *
 * @param[in] value Signal to encode.
 *
 * @return Encoded signal.
 */
uint8_t mc1_fmr_rs_obj_fd_rs_obj01_x_vel_rel_stdev_encode(double value);

/**
 * Decode given signal by applying scaling and offset.
 *
 * @param[in] value Signal to decode.
 *
 * @return Decoded signal.
 */
double mc1_fmr_rs_obj_fd_rs_obj01_x_vel_rel_stdev_decode(uint8_t value);

/**
 * Check that given signal is in allowed range.
 *
 * @param[in] value Signal to check.
 *
 * @return true if in range, false otherwise.
 */
bool mc1_fmr_rs_obj_fd_rs_obj01_x_vel_rel_stdev_is_in_range(uint8_t value);

/**
 * Encode given signal by applying scaling and offset.
 *
 * @param[in] value Signal to encode.
 *
 * @return Encoded signal.
 */
uint8_t mc1_fmr_rs_obj_fd_rs_obj01_y_vel_rel_stdev_encode(double value);

/**
 * Decode given signal by applying scaling and offset.
 *
 * @param[in] value Signal to decode.
 *
 * @return Decoded signal.
 */
double mc1_fmr_rs_obj_fd_rs_obj01_y_vel_rel_stdev_decode(uint8_t value);

/**
 * Check that given signal is in allowed range.
 *
 * @param[in] value Signal to check.
 *
 * @return true if in range, false otherwise.
 */
bool mc1_fmr_rs_obj_fd_rs_obj01_y_vel_rel_stdev_is_in_range(uint8_t value);

/**
 * Encode given signal by applying scaling and offset.
 *
 * @param[in] value Signal to encode.
 *
 * @return Encoded signal.
 */
uint8_t mc1_fmr_rs_obj_fd_rs_obj01_x_acc_rel_stdev_encode(double value);

/**
 * Decode given signal by applying scaling and offset.
 *
 * @param[in] value Signal to decode.
 *
 * @return Decoded signal.
 */
double mc1_fmr_rs_obj_fd_rs_obj01_x_acc_rel_stdev_decode(uint8_t value);

/**
 * Check that given signal is in allowed range.
 *
 * @param[in] value Signal to check.
 *
 * @return true if in range, false otherwise.
 */
bool mc1_fmr_rs_obj_fd_rs_obj01_x_acc_rel_stdev_is_in_range(uint8_t value);

/**
 * Encode given signal by applying scaling and offset.
 *
 * @param[in] value Signal to encode.
 *
 * @return Encoded signal.
 */
uint8_t mc1_fmr_rs_obj_fd_rs_obj01_y_acc_rel_stdev_encode(double value);

/**
 * Decode given signal by applying scaling and offset.
 *
 * @param[in] value Signal to decode.
 *
 * @return Decoded signal.
 */
double mc1_fmr_rs_obj_fd_rs_obj01_y_acc_rel_stdev_decode(uint8_t value);

/**
 * Check that given signal is in allowed range.
 *
 * @param[in] value Signal to check.
 *
 * @return true if in range, false otherwise.
 */
bool mc1_fmr_rs_obj_fd_rs_obj01_y_acc_rel_stdev_is_in_range(uint8_t value);

/**
 * Encode given signal by applying scaling and offset.
 *
 * @param[in] value Signal to encode.
 *
 * @return Encoded signal.
 */
uint8_t mc1_fmr_rs_obj_fd_rs_obj01_exst_prob_encode(double value);

/**
 * Decode given signal by applying scaling and offset.
 *
 * @param[in] value Signal to decode.
 *
 * @return Decoded signal.
 */
double mc1_fmr_rs_obj_fd_rs_obj01_exst_prob_decode(uint8_t value);

/**
 * Check that given signal is in allowed range.
 *
 * @param[in] value Signal to check.
 *
 * @return true if in range, false otherwise.
 */
bool mc1_fmr_rs_obj_fd_rs_obj01_exst_prob_is_in_range(uint8_t value);

/**
 * Encode given signal by applying scaling and offset.
 *
 * @param[in] value Signal to encode.
 *
 * @return Encoded signal.
 */
uint8_t mc1_fmr_rs_obj_fd_rs_obj01_msg03_alive_counter_encode(double value);

/**
 * Decode given signal by applying scaling and offset.
 *
 * @param[in] value Signal to decode.
 *
 * @return Decoded signal.
 */
double mc1_fmr_rs_obj_fd_rs_obj01_msg03_alive_counter_decode(uint8_t value);

/**
 * Check that given signal is in allowed range.
 *
 * @param[in] value Signal to check.
 *
 * @return true if in range, false otherwise.
 */
bool mc1_fmr_rs_obj_fd_rs_obj01_msg03_alive_counter_is_in_range(uint8_t value);

/**
 * Encode given signal by applying scaling and offset.
 *
 * @param[in] value Signal to encode.
 *
 * @return Encoded signal.
 */
uint8_t mc1_fmr_rs_obj_fd_rs_obj01_msg03_check_sum_encode(double value);

/**
 * Decode given signal by applying scaling and offset.
 *
 * @param[in] value Signal to decode.
 *
 * @return Decoded signal.
 */
double mc1_fmr_rs_obj_fd_rs_obj01_msg03_check_sum_decode(uint8_t value);

/**
 * Check that given signal is in allowed range.
 *
 * @param[in] value Signal to check.
 *
 * @return true if in range, false otherwise.
 */
bool mc1_fmr_rs_obj_fd_rs_obj01_msg03_check_sum_is_in_range(uint8_t value);

/**
 * Encode given signal by applying scaling and offset.
 *
 * @param[in] value Signal to encode.
 *
 * @return Encoded signal.
 */
uint8_t mc1_fmr_rs_obj_fd_rs_obj01_length_encode(double value);

/**
 * Decode given signal by applying scaling and offset.
 *
 * @param[in] value Signal to decode.
 *
 * @return Decoded signal.
 */
double mc1_fmr_rs_obj_fd_rs_obj01_length_decode(uint8_t value);

/**
 * Check that given signal is in allowed range.
 *
 * @param[in] value Signal to check.
 *
 * @return true if in range, false otherwise.
 */
bool mc1_fmr_rs_obj_fd_rs_obj01_length_is_in_range(uint8_t value);

/**
 * Encode given signal by applying scaling and offset.
 *
 * @param[in] value Signal to encode.
 *
 * @return Encoded signal.
 */
uint8_t mc1_fmr_rs_obj_fd_rs_obj01_width_encode(double value);

/**
 * Decode given signal by applying scaling and offset.
 *
 * @param[in] value Signal to decode.
 *
 * @return Decoded signal.
 */
double mc1_fmr_rs_obj_fd_rs_obj01_width_decode(uint8_t value);

/**
 * Check that given signal is in allowed range.
 *
 * @param[in] value Signal to check.
 *
 * @return true if in range, false otherwise.
 */
bool mc1_fmr_rs_obj_fd_rs_obj01_width_is_in_range(uint8_t value);

/**
 * Pack message RS_detandobj_count.
 *
 * @param[out] dst_p Buffer to pack the message into.
 * @param[in] src_p Data to pack.
 * @param[in] size Size of dst_p.
 *
 * @return Size of packed data, or negative error code.
 */
int mc1_fmr_rs_detandobj_count_pack(
    uint8_t *dst_p,
    const struct mc1_fmr_rs_detandobj_count_t *src_p,
    size_t size);

/**
 * Unpack message RS_detandobj_count.
 *
 * @param[out] dst_p Object to unpack the message into.
 * @param[in] src_p Message to unpack.
 * @param[in] size Size of src_p.
 *
 * @return zero(0) or negative error code.
 */
int mc1_fmr_rs_detandobj_count_unpack(
    struct mc1_fmr_rs_detandobj_count_t *dst_p,
    const uint8_t *src_p,
    size_t size);

/**
 * Init message fields to default values from RS_detandobj_count.
 *
 * @param[in] msg_p Message to init.
 *
 * @return zero(0) on success or (-1) in case of nullptr argument.
 */
int mc1_fmr_rs_detandobj_count_init(struct mc1_fmr_rs_detandobj_count_t *msg_p);

/**
 * Encode given signal by applying scaling and offset.
 *
 * @param[in] value Signal to encode.
 *
 * @return Encoded signal.
 */
uint8_t mc1_fmr_rs_detandobj_count_det_num_entries_encode(double value);

/**
 * Decode given signal by applying scaling and offset.
 *
 * @param[in] value Signal to decode.
 *
 * @return Decoded signal.
 */
double mc1_fmr_rs_detandobj_count_det_num_entries_decode(uint8_t value);

/**
 * Check that given signal is in allowed range.
 *
 * @param[in] value Signal to check.
 *
 * @return true if in range, false otherwise.
 */
bool mc1_fmr_rs_detandobj_count_det_num_entries_is_in_range(uint8_t value);

/**
 * Encode given signal by applying scaling and offset.
 *
 * @param[in] value Signal to encode.
 *
 * @return Encoded signal.
 */
uint8_t mc1_fmr_rs_detandobj_count_num_txdets_encode(double value);

/**
 * Decode given signal by applying scaling and offset.
 *
 * @param[in] value Signal to decode.
 *
 * @return Decoded signal.
 */
double mc1_fmr_rs_detandobj_count_num_txdets_decode(uint8_t value);

/**
 * Check that given signal is in allowed range.
 *
 * @param[in] value Signal to check.
 *
 * @return true if in range, false otherwise.
 */
bool mc1_fmr_rs_detandobj_count_num_txdets_is_in_range(uint8_t value);

/**
 * Encode given signal by applying scaling and offset.
 *
 * @param[in] value Signal to encode.
 *
 * @return Encoded signal.
 */
uint8_t mc1_fmr_rs_detandobj_count_obj_num_entries_encode(double value);

/**
 * Decode given signal by applying scaling and offset.
 *
 * @param[in] value Signal to decode.
 *
 * @return Decoded signal.
 */
double mc1_fmr_rs_detandobj_count_obj_num_entries_decode(uint8_t value);

/**
 * Check that given signal is in allowed range.
 *
 * @param[in] value Signal to check.
 *
 * @return true if in range, false otherwise.
 */
bool mc1_fmr_rs_detandobj_count_obj_num_entries_is_in_range(uint8_t value);

/**
 * Encode given signal by applying scaling and offset.
 *
 * @param[in] value Signal to encode.
 *
 * @return Encoded signal.
 */
uint8_t mc1_fmr_rs_detandobj_count_num_tx_objs_encode(double value);

/**
 * Decode given signal by applying scaling and offset.
 *
 * @param[in] value Signal to decode.
 *
 * @return Decoded signal.
 */
double mc1_fmr_rs_detandobj_count_num_tx_objs_decode(uint8_t value);

/**
 * Check that given signal is in allowed range.
 *
 * @param[in] value Signal to check.
 *
 * @return true if in range, false otherwise.
 */
bool mc1_fmr_rs_detandobj_count_num_tx_objs_is_in_range(uint8_t value);

/**
 * Pack message DiagReq.
 *
 * @param[out] dst_p Buffer to pack the message into.
 * @param[in] src_p Data to pack.
 * @param[in] size Size of dst_p.
 *
 * @return Size of packed data, or negative error code.
 */
int mc1_fmr_diag_req_pack(
    uint8_t *dst_p,
    const struct mc1_fmr_diag_req_t *src_p,
    size_t size);

/**
 * Unpack message DiagReq.
 *
 * @param[out] dst_p Object to unpack the message into.
 * @param[in] src_p Message to unpack.
 * @param[in] size Size of src_p.
 *
 * @return zero(0) or negative error code.
 */
int mc1_fmr_diag_req_unpack(
    struct mc1_fmr_diag_req_t *dst_p,
    const uint8_t *src_p,
    size_t size);

/**
 * Init message fields to default values from DiagReq.
 *
 * @param[in] msg_p Message to init.
 *
 * @return zero(0) on success or (-1) in case of nullptr argument.
 */
int mc1_fmr_diag_req_init(struct mc1_fmr_diag_req_t *msg_p);

/**
 * Encode given signal by applying scaling and offset.
 *
 * @param[in] value Signal to encode.
 *
 * @return Encoded signal.
 */
uint8_t mc1_fmr_diag_req_diag_req_byte0_encode(double value);

/**
 * Decode given signal by applying scaling and offset.
 *
 * @param[in] value Signal to decode.
 *
 * @return Decoded signal.
 */
double mc1_fmr_diag_req_diag_req_byte0_decode(uint8_t value);

/**
 * Check that given signal is in allowed range.
 *
 * @param[in] value Signal to check.
 *
 * @return true if in range, false otherwise.
 */
bool mc1_fmr_diag_req_diag_req_byte0_is_in_range(uint8_t value);

/**
 * Encode given signal by applying scaling and offset.
 *
 * @param[in] value Signal to encode.
 *
 * @return Encoded signal.
 */
uint8_t mc1_fmr_diag_req_diag_req_byte1_encode(double value);

/**
 * Decode given signal by applying scaling and offset.
 *
 * @param[in] value Signal to decode.
 *
 * @return Decoded signal.
 */
double mc1_fmr_diag_req_diag_req_byte1_decode(uint8_t value);

/**
 * Check that given signal is in allowed range.
 *
 * @param[in] value Signal to check.
 *
 * @return true if in range, false otherwise.
 */
bool mc1_fmr_diag_req_diag_req_byte1_is_in_range(uint8_t value);

/**
 * Encode given signal by applying scaling and offset.
 *
 * @param[in] value Signal to encode.
 *
 * @return Encoded signal.
 */
uint8_t mc1_fmr_diag_req_diag_req_byte2_encode(double value);

/**
 * Decode given signal by applying scaling and offset.
 *
 * @param[in] value Signal to decode.
 *
 * @return Decoded signal.
 */
double mc1_fmr_diag_req_diag_req_byte2_decode(uint8_t value);

/**
 * Check that given signal is in allowed range.
 *
 * @param[in] value Signal to check.
 *
 * @return true if in range, false otherwise.
 */
bool mc1_fmr_diag_req_diag_req_byte2_is_in_range(uint8_t value);

/**
 * Encode given signal by applying scaling and offset.
 *
 * @param[in] value Signal to encode.
 *
 * @return Encoded signal.
 */
uint8_t mc1_fmr_diag_req_diag_req_byte3_encode(double value);

/**
 * Decode given signal by applying scaling and offset.
 *
 * @param[in] value Signal to decode.
 *
 * @return Decoded signal.
 */
double mc1_fmr_diag_req_diag_req_byte3_decode(uint8_t value);

/**
 * Check that given signal is in allowed range.
 *
 * @param[in] value Signal to check.
 *
 * @return true if in range, false otherwise.
 */
bool mc1_fmr_diag_req_diag_req_byte3_is_in_range(uint8_t value);

/**
 * Encode given signal by applying scaling and offset.
 *
 * @param[in] value Signal to encode.
 *
 * @return Encoded signal.
 */
uint8_t mc1_fmr_diag_req_diag_req_byte4_encode(double value);

/**
 * Decode given signal by applying scaling and offset.
 *
 * @param[in] value Signal to decode.
 *
 * @return Decoded signal.
 */
double mc1_fmr_diag_req_diag_req_byte4_decode(uint8_t value);

/**
 * Check that given signal is in allowed range.
 *
 * @param[in] value Signal to check.
 *
 * @return true if in range, false otherwise.
 */
bool mc1_fmr_diag_req_diag_req_byte4_is_in_range(uint8_t value);

/**
 * Encode given signal by applying scaling and offset.
 *
 * @param[in] value Signal to encode.
 *
 * @return Encoded signal.
 */
uint8_t mc1_fmr_diag_req_diag_req_byte5_encode(double value);

/**
 * Decode given signal by applying scaling and offset.
 *
 * @param[in] value Signal to decode.
 *
 * @return Decoded signal.
 */
double mc1_fmr_diag_req_diag_req_byte5_decode(uint8_t value);

/**
 * Check that given signal is in allowed range.
 *
 * @param[in] value Signal to check.
 *
 * @return true if in range, false otherwise.
 */
bool mc1_fmr_diag_req_diag_req_byte5_is_in_range(uint8_t value);

/**
 * Encode given signal by applying scaling and offset.
 *
 * @param[in] value Signal to encode.
 *
 * @return Encoded signal.
 */
uint8_t mc1_fmr_diag_req_diag_req_byte6_encode(double value);

/**
 * Decode given signal by applying scaling and offset.
 *
 * @param[in] value Signal to decode.
 *
 * @return Decoded signal.
 */
double mc1_fmr_diag_req_diag_req_byte6_decode(uint8_t value);

/**
 * Check that given signal is in allowed range.
 *
 * @param[in] value Signal to check.
 *
 * @return true if in range, false otherwise.
 */
bool mc1_fmr_diag_req_diag_req_byte6_is_in_range(uint8_t value);

/**
 * Encode given signal by applying scaling and offset.
 *
 * @param[in] value Signal to encode.
 *
 * @return Encoded signal.
 */
uint8_t mc1_fmr_diag_req_diag_req_byte7_encode(double value);

/**
 * Decode given signal by applying scaling and offset.
 *
 * @param[in] value Signal to decode.
 *
 * @return Decoded signal.
 */
double mc1_fmr_diag_req_diag_req_byte7_decode(uint8_t value);

/**
 * Check that given signal is in allowed range.
 *
 * @param[in] value Signal to check.
 *
 * @return true if in range, false otherwise.
 */
bool mc1_fmr_diag_req_diag_req_byte7_is_in_range(uint8_t value);

/**
 * Pack message DiagResp.
 *
 * @param[out] dst_p Buffer to pack the message into.
 * @param[in] src_p Data to pack.
 * @param[in] size Size of dst_p.
 *
 * @return Size of packed data, or negative error code.
 */
int mc1_fmr_diag_resp_pack(
    uint8_t *dst_p,
    const struct mc1_fmr_diag_resp_t *src_p,
    size_t size);

/**
 * Unpack message DiagResp.
 *
 * @param[out] dst_p Object to unpack the message into.
 * @param[in] src_p Message to unpack.
 * @param[in] size Size of src_p.
 *
 * @return zero(0) or negative error code.
 */
int mc1_fmr_diag_resp_unpack(
    struct mc1_fmr_diag_resp_t *dst_p,
    const uint8_t *src_p,
    size_t size);

/**
 * Init message fields to default values from DiagResp.
 *
 * @param[in] msg_p Message to init.
 *
 * @return zero(0) on success or (-1) in case of nullptr argument.
 */
int mc1_fmr_diag_resp_init(struct mc1_fmr_diag_resp_t *msg_p);

/**
 * Encode given signal by applying scaling and offset.
 *
 * @param[in] value Signal to encode.
 *
 * @return Encoded signal.
 */
uint8_t mc1_fmr_diag_resp_diag_resp_byte0_encode(double value);

/**
 * Decode given signal by applying scaling and offset.
 *
 * @param[in] value Signal to decode.
 *
 * @return Decoded signal.
 */
double mc1_fmr_diag_resp_diag_resp_byte0_decode(uint8_t value);

/**
 * Check that given signal is in allowed range.
 *
 * @param[in] value Signal to check.
 *
 * @return true if in range, false otherwise.
 */
bool mc1_fmr_diag_resp_diag_resp_byte0_is_in_range(uint8_t value);

/**
 * Encode given signal by applying scaling and offset.
 *
 * @param[in] value Signal to encode.
 *
 * @return Encoded signal.
 */
uint8_t mc1_fmr_diag_resp_diag_resp_byte1_encode(double value);

/**
 * Decode given signal by applying scaling and offset.
 *
 * @param[in] value Signal to decode.
 *
 * @return Decoded signal.
 */
double mc1_fmr_diag_resp_diag_resp_byte1_decode(uint8_t value);

/**
 * Check that given signal is in allowed range.
 *
 * @param[in] value Signal to check.
 *
 * @return true if in range, false otherwise.
 */
bool mc1_fmr_diag_resp_diag_resp_byte1_is_in_range(uint8_t value);

/**
 * Encode given signal by applying scaling and offset.
 *
 * @param[in] value Signal to encode.
 *
 * @return Encoded signal.
 */
uint8_t mc1_fmr_diag_resp_diag_resp_byte2_encode(double value);

/**
 * Decode given signal by applying scaling and offset.
 *
 * @param[in] value Signal to decode.
 *
 * @return Decoded signal.
 */
double mc1_fmr_diag_resp_diag_resp_byte2_decode(uint8_t value);

/**
 * Check that given signal is in allowed range.
 *
 * @param[in] value Signal to check.
 *
 * @return true if in range, false otherwise.
 */
bool mc1_fmr_diag_resp_diag_resp_byte2_is_in_range(uint8_t value);

/**
 * Encode given signal by applying scaling and offset.
 *
 * @param[in] value Signal to encode.
 *
 * @return Encoded signal.
 */
uint8_t mc1_fmr_diag_resp_diag_resp_byte3_encode(double value);

/**
 * Decode given signal by applying scaling and offset.
 *
 * @param[in] value Signal to decode.
 *
 * @return Decoded signal.
 */
double mc1_fmr_diag_resp_diag_resp_byte3_decode(uint8_t value);

/**
 * Check that given signal is in allowed range.
 *
 * @param[in] value Signal to check.
 *
 * @return true if in range, false otherwise.
 */
bool mc1_fmr_diag_resp_diag_resp_byte3_is_in_range(uint8_t value);

/**
 * Encode given signal by applying scaling and offset.
 *
 * @param[in] value Signal to encode.
 *
 * @return Encoded signal.
 */
uint8_t mc1_fmr_diag_resp_diag_resp_byte4_encode(double value);

/**
 * Decode given signal by applying scaling and offset.
 *
 * @param[in] value Signal to decode.
 *
 * @return Decoded signal.
 */
double mc1_fmr_diag_resp_diag_resp_byte4_decode(uint8_t value);

/**
 * Check that given signal is in allowed range.
 *
 * @param[in] value Signal to check.
 *
 * @return true if in range, false otherwise.
 */
bool mc1_fmr_diag_resp_diag_resp_byte4_is_in_range(uint8_t value);

/**
 * Encode given signal by applying scaling and offset.
 *
 * @param[in] value Signal to encode.
 *
 * @return Encoded signal.
 */
uint8_t mc1_fmr_diag_resp_diag_resp_byte5_encode(double value);

/**
 * Decode given signal by applying scaling and offset.
 *
 * @param[in] value Signal to decode.
 *
 * @return Decoded signal.
 */
double mc1_fmr_diag_resp_diag_resp_byte5_decode(uint8_t value);

/**
 * Check that given signal is in allowed range.
 *
 * @param[in] value Signal to check.
 *
 * @return true if in range, false otherwise.
 */
bool mc1_fmr_diag_resp_diag_resp_byte5_is_in_range(uint8_t value);

/**
 * Encode given signal by applying scaling and offset.
 *
 * @param[in] value Signal to encode.
 *
 * @return Encoded signal.
 */
uint8_t mc1_fmr_diag_resp_diag_resp_byte6_encode(double value);

/**
 * Decode given signal by applying scaling and offset.
 *
 * @param[in] value Signal to decode.
 *
 * @return Decoded signal.
 */
double mc1_fmr_diag_resp_diag_resp_byte6_decode(uint8_t value);

/**
 * Check that given signal is in allowed range.
 *
 * @param[in] value Signal to check.
 *
 * @return true if in range, false otherwise.
 */
bool mc1_fmr_diag_resp_diag_resp_byte6_is_in_range(uint8_t value);

/**
 * Encode given signal by applying scaling and offset.
 *
 * @param[in] value Signal to encode.
 *
 * @return Encoded signal.
 */
uint8_t mc1_fmr_diag_resp_diag_resp_byte7_encode(double value);

/**
 * Decode given signal by applying scaling and offset.
 *
 * @param[in] value Signal to decode.
 *
 * @return Decoded signal.
 */
double mc1_fmr_diag_resp_diag_resp_byte7_decode(uint8_t value);

/**
 * Check that given signal is in allowed range.
 *
 * @param[in] value Signal to check.
 *
 * @return true if in range, false otherwise.
 */
bool mc1_fmr_diag_resp_diag_resp_byte7_is_in_range(uint8_t value);

/**
 * Pack message RS_Status.
 *
 * @param[out] dst_p Buffer to pack the message into.
 * @param[in] src_p Data to pack.
 * @param[in] size Size of dst_p.
 *
 * @return Size of packed data, or negative error code.
 */
int mc1_fmr_rs_status_pack(
    uint8_t *dst_p,
    const struct mc1_fmr_rs_status_t *src_p,
    size_t size);

/**
 * Unpack message RS_Status.
 *
 * @param[out] dst_p Object to unpack the message into.
 * @param[in] src_p Message to unpack.
 * @param[in] size Size of src_p.
 *
 * @return zero(0) or negative error code.
 */
int mc1_fmr_rs_status_unpack(
    struct mc1_fmr_rs_status_t *dst_p,
    const uint8_t *src_p,
    size_t size);

/**
 * Init message fields to default values from RS_Status.
 *
 * @param[in] msg_p Message to init.
 *
 * @return zero(0) on success or (-1) in case of nullptr argument.
 */
int mc1_fmr_rs_status_init(struct mc1_fmr_rs_status_t *msg_p);

/**
 * Encode given signal by applying scaling and offset.
 *
 * @param[in] value Signal to encode.
 *
 * @return Encoded signal.
 */
uint8_t mc1_fmr_rs_status_rs_sts_failure_encode(double value);

/**
 * Decode given signal by applying scaling and offset.
 *
 * @param[in] value Signal to decode.
 *
 * @return Decoded signal.
 */
double mc1_fmr_rs_status_rs_sts_failure_decode(uint8_t value);

/**
 * Check that given signal is in allowed range.
 *
 * @param[in] value Signal to check.
 *
 * @return true if in range, false otherwise.
 */
bool mc1_fmr_rs_status_rs_sts_failure_is_in_range(uint8_t value);

/**
 * Encode given signal by applying scaling and offset.
 *
 * @param[in] value Signal to encode.
 *
 * @return Encoded signal.
 */
uint8_t mc1_fmr_rs_status_rs_sts_interference_encode(double value);

/**
 * Decode given signal by applying scaling and offset.
 *
 * @param[in] value Signal to decode.
 *
 * @return Decoded signal.
 */
double mc1_fmr_rs_status_rs_sts_interference_decode(uint8_t value);

/**
 * Check that given signal is in allowed range.
 *
 * @param[in] value Signal to check.
 *
 * @return true if in range, false otherwise.
 */
bool mc1_fmr_rs_status_rs_sts_interference_is_in_range(uint8_t value);

/**
 * Encode given signal by applying scaling and offset.
 *
 * @param[in] value Signal to encode.
 *
 * @return Encoded signal.
 */
uint8_t mc1_fmr_rs_status_rs_sts_blkg_encode(double value);

/**
 * Decode given signal by applying scaling and offset.
 *
 * @param[in] value Signal to decode.
 *
 * @return Decoded signal.
 */
double mc1_fmr_rs_status_rs_sts_blkg_decode(uint8_t value);

/**
 * Check that given signal is in allowed range.
 *
 * @param[in] value Signal to check.
 *
 * @return true if in range, false otherwise.
 */
bool mc1_fmr_rs_status_rs_sts_blkg_is_in_range(uint8_t value);

/**
 * Encode given signal by applying scaling and offset.
 *
 * @param[in] value Signal to encode.
 *
 * @return Encoded signal.
 */
uint8_t mc1_fmr_rs_status_rs_sts_mis_align_encode(double value);

/**
 * Decode given signal by applying scaling and offset.
 *
 * @param[in] value Signal to decode.
 *
 * @return Decoded signal.
 */
double mc1_fmr_rs_status_rs_sts_mis_align_decode(uint8_t value);

/**
 * Check that given signal is in allowed range.
 *
 * @param[in] value Signal to check.
 *
 * @return true if in range, false otherwise.
 */
bool mc1_fmr_rs_status_rs_sts_mis_align_is_in_range(uint8_t value);

/**
 * Encode given signal by applying scaling and offset.
 *
 * @param[in] value Signal to encode.
 *
 * @return Encoded signal.
 */
uint8_t mc1_fmr_rs_status_rs_latency_encode(double value);

/**
 * Decode given signal by applying scaling and offset.
 *
 * @param[in] value Signal to decode.
 *
 * @return Decoded signal.
 */
double mc1_fmr_rs_status_rs_latency_decode(uint8_t value);

/**
 * Check that given signal is in allowed range.
 *
 * @param[in] value Signal to check.
 *
 * @return true if in range, false otherwise.
 */
bool mc1_fmr_rs_status_rs_latency_is_in_range(uint8_t value);

/**
 * Encode given signal by applying scaling and offset.
 *
 * @param[in] value Signal to encode.
 *
 * @return Encoded signal.
 */
uint8_t mc1_fmr_rs_status_rs_msg_alive_counter_encode(double value);

/**
 * Decode given signal by applying scaling and offset.
 *
 * @param[in] value Signal to decode.
 *
 * @return Decoded signal.
 */
double mc1_fmr_rs_status_rs_msg_alive_counter_decode(uint8_t value);

/**
 * Check that given signal is in allowed range.
 *
 * @param[in] value Signal to check.
 *
 * @return true if in range, false otherwise.
 */
bool mc1_fmr_rs_status_rs_msg_alive_counter_is_in_range(uint8_t value);

/**
 * Encode given signal by applying scaling and offset.
 *
 * @param[in] value Signal to encode.
 *
 * @return Encoded signal.
 */
uint8_t mc1_fmr_rs_status_rs_msg_check_sum_encode(double value);

/**
 * Decode given signal by applying scaling and offset.
 *
 * @param[in] value Signal to decode.
 *
 * @return Decoded signal.
 */
double mc1_fmr_rs_status_rs_msg_check_sum_decode(uint8_t value);

/**
 * Check that given signal is in allowed range.
 *
 * @param[in] value Signal to check.
 *
 * @return true if in range, false otherwise.
 */
bool mc1_fmr_rs_status_rs_msg_check_sum_is_in_range(uint8_t value);

/**
 * Pack message NWM_RS.
 *
 * @param[out] dst_p Buffer to pack the message into.
 * @param[in] src_p Data to pack.
 * @param[in] size Size of dst_p.
 *
 * @return Size of packed data, or negative error code.
 */
int mc1_fmr_nwm_rs_pack(
    uint8_t *dst_p,
    const struct mc1_fmr_nwm_rs_t *src_p,
    size_t size);

/**
 * Unpack message NWM_RS.
 *
 * @param[out] dst_p Object to unpack the message into.
 * @param[in] src_p Message to unpack.
 * @param[in] size Size of src_p.
 *
 * @return zero(0) or negative error code.
 */
int mc1_fmr_nwm_rs_unpack(
    struct mc1_fmr_nwm_rs_t *dst_p,
    const uint8_t *src_p,
    size_t size);

/**
 * Init message fields to default values from NWM_RS.
 *
 * @param[in] msg_p Message to init.
 *
 * @return zero(0) on success or (-1) in case of nullptr argument.
 */
int mc1_fmr_nwm_rs_init(struct mc1_fmr_nwm_rs_t *msg_p);

/**
 * Encode given signal by applying scaling and offset.
 *
 * @param[in] value Signal to encode.
 *
 * @return Encoded signal.
 */
uint8_t mc1_fmr_nwm_rs_rs_address_encode(double value);

/**
 * Decode given signal by applying scaling and offset.
 *
 * @param[in] value Signal to decode.
 *
 * @return Decoded signal.
 */
double mc1_fmr_nwm_rs_rs_address_decode(uint8_t value);

/**
 * Check that given signal is in allowed range.
 *
 * @param[in] value Signal to check.
 *
 * @return true if in range, false otherwise.
 */
bool mc1_fmr_nwm_rs_rs_address_is_in_range(uint8_t value);

/**
 * Encode given signal by applying scaling and offset.
 *
 * @param[in] value Signal to encode.
 *
 * @return Encoded signal.
 */
uint8_t mc1_fmr_nwm_rs_rs_awb_encode(double value);

/**
 * Decode given signal by applying scaling and offset.
 *
 * @param[in] value Signal to decode.
 *
 * @return Decoded signal.
 */
double mc1_fmr_nwm_rs_rs_awb_decode(uint8_t value);

/**
 * Check that given signal is in allowed range.
 *
 * @param[in] value Signal to check.
 *
 * @return true if in range, false otherwise.
 */
bool mc1_fmr_nwm_rs_rs_awb_is_in_range(uint8_t value);

/**
 * Encode given signal by applying scaling and offset.
 *
 * @param[in] value Signal to encode.
 *
 * @return Encoded signal.
 */
uint8_t mc1_fmr_nwm_rs_rs_rmr_encode(double value);

/**
 * Decode given signal by applying scaling and offset.
 *
 * @param[in] value Signal to decode.
 *
 * @return Decoded signal.
 */
double mc1_fmr_nwm_rs_rs_rmr_decode(uint8_t value);

/**
 * Check that given signal is in allowed range.
 *
 * @param[in] value Signal to check.
 *
 * @return true if in range, false otherwise.
 */
bool mc1_fmr_nwm_rs_rs_rmr_is_in_range(uint8_t value);

/**
 * Encode given signal by applying scaling and offset.
 *
 * @param[in] value Signal to encode.
 *
 * @return Encoded signal.
 */
uint8_t mc1_fmr_nwm_rs_rs_wakeup_reasons_encode(double value);

/**
 * Decode given signal by applying scaling and offset.
 *
 * @param[in] value Signal to decode.
 *
 * @return Decoded signal.
 */
double mc1_fmr_nwm_rs_rs_wakeup_reasons_decode(uint8_t value);

/**
 * Check that given signal is in allowed range.
 *
 * @param[in] value Signal to check.
 *
 * @return true if in range, false otherwise.
 */
bool mc1_fmr_nwm_rs_rs_wakeup_reasons_is_in_range(uint8_t value);

/**
 * Encode given signal by applying scaling and offset.
 *
 * @param[in] value Signal to encode.
 *
 * @return Encoded signal.
 */
uint8_t mc1_fmr_nwm_rs_rs_nm_sts_encode(double value);

/**
 * Decode given signal by applying scaling and offset.
 *
 * @param[in] value Signal to decode.
 *
 * @return Decoded signal.
 */
double mc1_fmr_nwm_rs_rs_nm_sts_decode(uint8_t value);

/**
 * Check that given signal is in allowed range.
 *
 * @param[in] value Signal to check.
 *
 * @return true if in range, false otherwise.
 */
bool mc1_fmr_nwm_rs_rs_nm_sts_is_in_range(uint8_t value);

/**
 * Encode given signal by applying scaling and offset.
 *
 * @param[in] value Signal to encode.
 *
 * @return Encoded signal.
 */
uint32_t mc1_fmr_nwm_rs_rs_stayawake_reasons_encode(double value);

/**
 * Decode given signal by applying scaling and offset.
 *
 * @param[in] value Signal to decode.
 *
 * @return Decoded signal.
 */
double mc1_fmr_nwm_rs_rs_stayawake_reasons_decode(uint32_t value);

/**
 * Check that given signal is in allowed range.
 *
 * @param[in] value Signal to check.
 *
 * @return true if in range, false otherwise.
 */
bool mc1_fmr_nwm_rs_rs_stayawake_reasons_is_in_range(uint32_t value);

/**
 * Pack message Func_DiagReq.
 *
 * @param[out] dst_p Buffer to pack the message into.
 * @param[in] src_p Data to pack.
 * @param[in] size Size of dst_p.
 *
 * @return Size of packed data, or negative error code.
 */
int mc1_fmr_func_diag_req_pack(
    uint8_t *dst_p,
    const struct mc1_fmr_func_diag_req_t *src_p,
    size_t size);

/**
 * Unpack message Func_DiagReq.
 *
 * @param[out] dst_p Object to unpack the message into.
 * @param[in] src_p Message to unpack.
 * @param[in] size Size of src_p.
 *
 * @return zero(0) or negative error code.
 */
int mc1_fmr_func_diag_req_unpack(
    struct mc1_fmr_func_diag_req_t *dst_p,
    const uint8_t *src_p,
    size_t size);

/**
 * Init message fields to default values from Func_DiagReq.
 *
 * @param[in] msg_p Message to init.
 *
 * @return zero(0) on success or (-1) in case of nullptr argument.
 */
int mc1_fmr_func_diag_req_init(struct mc1_fmr_func_diag_req_t *msg_p);

/**
 * Encode given signal by applying scaling and offset.
 *
 * @param[in] value Signal to encode.
 *
 * @return Encoded signal.
 */
uint8_t mc1_fmr_func_diag_req_func_diag_req_byte0_encode(double value);

/**
 * Decode given signal by applying scaling and offset.
 *
 * @param[in] value Signal to decode.
 *
 * @return Decoded signal.
 */
double mc1_fmr_func_diag_req_func_diag_req_byte0_decode(uint8_t value);

/**
 * Check that given signal is in allowed range.
 *
 * @param[in] value Signal to check.
 *
 * @return true if in range, false otherwise.
 */
bool mc1_fmr_func_diag_req_func_diag_req_byte0_is_in_range(uint8_t value);

/**
 * Encode given signal by applying scaling and offset.
 *
 * @param[in] value Signal to encode.
 *
 * @return Encoded signal.
 */
uint8_t mc1_fmr_func_diag_req_func_diag_req_byte2_encode(double value);

/**
 * Decode given signal by applying scaling and offset.
 *
 * @param[in] value Signal to decode.
 *
 * @return Decoded signal.
 */
double mc1_fmr_func_diag_req_func_diag_req_byte2_decode(uint8_t value);

/**
 * Check that given signal is in allowed range.
 *
 * @param[in] value Signal to check.
 *
 * @return true if in range, false otherwise.
 */
bool mc1_fmr_func_diag_req_func_diag_req_byte2_is_in_range(uint8_t value);

/**
 * Encode given signal by applying scaling and offset.
 *
 * @param[in] value Signal to encode.
 *
 * @return Encoded signal.
 */
uint8_t mc1_fmr_func_diag_req_func_diag_req_byte3_encode(double value);

/**
 * Decode given signal by applying scaling and offset.
 *
 * @param[in] value Signal to decode.
 *
 * @return Decoded signal.
 */
double mc1_fmr_func_diag_req_func_diag_req_byte3_decode(uint8_t value);

/**
 * Check that given signal is in allowed range.
 *
 * @param[in] value Signal to check.
 *
 * @return true if in range, false otherwise.
 */
bool mc1_fmr_func_diag_req_func_diag_req_byte3_is_in_range(uint8_t value);

/**
 * Encode given signal by applying scaling and offset.
 *
 * @param[in] value Signal to encode.
 *
 * @return Encoded signal.
 */
uint8_t mc1_fmr_func_diag_req_func_diag_req_byte4_encode(double value);

/**
 * Decode given signal by applying scaling and offset.
 *
 * @param[in] value Signal to decode.
 *
 * @return Decoded signal.
 */
double mc1_fmr_func_diag_req_func_diag_req_byte4_decode(uint8_t value);

/**
 * Check that given signal is in allowed range.
 *
 * @param[in] value Signal to check.
 *
 * @return true if in range, false otherwise.
 */
bool mc1_fmr_func_diag_req_func_diag_req_byte4_is_in_range(uint8_t value);

/**
 * Encode given signal by applying scaling and offset.
 *
 * @param[in] value Signal to encode.
 *
 * @return Encoded signal.
 */
uint8_t mc1_fmr_func_diag_req_func_diag_req_byte5_encode(double value);

/**
 * Decode given signal by applying scaling and offset.
 *
 * @param[in] value Signal to decode.
 *
 * @return Decoded signal.
 */
double mc1_fmr_func_diag_req_func_diag_req_byte5_decode(uint8_t value);

/**
 * Check that given signal is in allowed range.
 *
 * @param[in] value Signal to check.
 *
 * @return true if in range, false otherwise.
 */
bool mc1_fmr_func_diag_req_func_diag_req_byte5_is_in_range(uint8_t value);

/**
 * Encode given signal by applying scaling and offset.
 *
 * @param[in] value Signal to encode.
 *
 * @return Encoded signal.
 */
uint8_t mc1_fmr_func_diag_req_func_diag_req_byte6_encode(double value);

/**
 * Decode given signal by applying scaling and offset.
 *
 * @param[in] value Signal to decode.
 *
 * @return Decoded signal.
 */
double mc1_fmr_func_diag_req_func_diag_req_byte6_decode(uint8_t value);

/**
 * Check that given signal is in allowed range.
 *
 * @param[in] value Signal to check.
 *
 * @return true if in range, false otherwise.
 */
bool mc1_fmr_func_diag_req_func_diag_req_byte6_is_in_range(uint8_t value);

/**
 * Encode given signal by applying scaling and offset.
 *
 * @param[in] value Signal to encode.
 *
 * @return Encoded signal.
 */
uint8_t mc1_fmr_func_diag_req_func_diag_req_byte7_encode(double value);

/**
 * Decode given signal by applying scaling and offset.
 *
 * @param[in] value Signal to decode.
 *
 * @return Decoded signal.
 */
double mc1_fmr_func_diag_req_func_diag_req_byte7_decode(uint8_t value);

/**
 * Check that given signal is in allowed range.
 *
 * @param[in] value Signal to check.
 *
 * @return true if in range, false otherwise.
 */
bool mc1_fmr_func_diag_req_func_diag_req_byte7_is_in_range(uint8_t value);

/**
 * Pack message VCU_ModeControl.
 *
 * @param[out] dst_p Buffer to pack the message into.
 * @param[in] src_p Data to pack.
 * @param[in] size Size of dst_p.
 *
 * @return Size of packed data, or negative error code.
 */
int mc1_fmr_vcu_mode_control_pack(
    uint8_t *dst_p,
    const struct mc1_fmr_vcu_mode_control_t *src_p,
    size_t size);

/**
 * Unpack message VCU_ModeControl.
 *
 * @param[out] dst_p Object to unpack the message into.
 * @param[in] src_p Message to unpack.
 * @param[in] size Size of src_p.
 *
 * @return zero(0) or negative error code.
 */
int mc1_fmr_vcu_mode_control_unpack(
    struct mc1_fmr_vcu_mode_control_t *dst_p,
    const uint8_t *src_p,
    size_t size);

/**
 * Init message fields to default values from VCU_ModeControl.
 *
 * @param[in] msg_p Message to init.
 *
 * @return zero(0) on success or (-1) in case of nullptr argument.
 */
int mc1_fmr_vcu_mode_control_init(struct mc1_fmr_vcu_mode_control_t *msg_p);

/**
 * Encode given signal by applying scaling and offset.
 *
 * @param[in] value Signal to encode.
 *
 * @return Encoded signal.
 */
uint8_t mc1_fmr_vcu_mode_control_vcu_current_gear_position_encode(double value);

/**
 * Decode given signal by applying scaling and offset.
 *
 * @param[in] value Signal to decode.
 *
 * @return Decoded signal.
 */
double mc1_fmr_vcu_mode_control_vcu_current_gear_position_decode(uint8_t value);

/**
 * Check that given signal is in allowed range.
 *
 * @param[in] value Signal to check.
 *
 * @return true if in range, false otherwise.
 */
bool mc1_fmr_vcu_mode_control_vcu_current_gear_position_is_in_range(uint8_t value);

/**
 * Encode given signal by applying scaling and offset.
 *
 * @param[in] value Signal to encode.
 *
 * @return Encoded signal.
 */
uint8_t mc1_fmr_vcu_mode_control_vcu_mode_control_alive_counter_encode(double value);

/**
 * Decode given signal by applying scaling and offset.
 *
 * @param[in] value Signal to decode.
 *
 * @return Decoded signal.
 */
double mc1_fmr_vcu_mode_control_vcu_mode_control_alive_counter_decode(uint8_t value);

/**
 * Check that given signal is in allowed range.
 *
 * @param[in] value Signal to check.
 *
 * @return true if in range, false otherwise.
 */
bool mc1_fmr_vcu_mode_control_vcu_mode_control_alive_counter_is_in_range(uint8_t value);

/**
 * Encode given signal by applying scaling and offset.
 *
 * @param[in] value Signal to encode.
 *
 * @return Encoded signal.
 */
uint8_t mc1_fmr_vcu_mode_control_vcu_mode_control_check_sum_encode(double value);

/**
 * Decode given signal by applying scaling and offset.
 *
 * @param[in] value Signal to decode.
 *
 * @return Decoded signal.
 */
double mc1_fmr_vcu_mode_control_vcu_mode_control_check_sum_decode(uint8_t value);

/**
 * Check that given signal is in allowed range.
 *
 * @param[in] value Signal to check.
 *
 * @return true if in range, false otherwise.
 */
bool mc1_fmr_vcu_mode_control_vcu_mode_control_check_sum_is_in_range(uint8_t value);

/**
 * Pack message YRS1.
 *
 * @param[out] dst_p Buffer to pack the message into.
 * @param[in] src_p Data to pack.
 * @param[in] size Size of dst_p.
 *
 * @return Size of packed data, or negative error code.
 */
int mc1_fmr_yrs1_pack(
    uint8_t *dst_p,
    const struct mc1_fmr_yrs1_t *src_p,
    size_t size);

/**
 * Unpack message YRS1.
 *
 * @param[out] dst_p Object to unpack the message into.
 * @param[in] src_p Message to unpack.
 * @param[in] size Size of src_p.
 *
 * @return zero(0) or negative error code.
 */
int mc1_fmr_yrs1_unpack(
    struct mc1_fmr_yrs1_t *dst_p,
    const uint8_t *src_p,
    size_t size);

/**
 * Init message fields to default values from YRS1.
 *
 * @param[in] msg_p Message to init.
 *
 * @return zero(0) on success or (-1) in case of nullptr argument.
 */
int mc1_fmr_yrs1_init(struct mc1_fmr_yrs1_t *msg_p);

/**
 * Encode given signal by applying scaling and offset.
 *
 * @param[in] value Signal to encode.
 *
 * @return Encoded signal.
 */
uint8_t mc1_fmr_yrs1_yrs1_check_sum_encode(double value);

/**
 * Decode given signal by applying scaling and offset.
 *
 * @param[in] value Signal to decode.
 *
 * @return Decoded signal.
 */
double mc1_fmr_yrs1_yrs1_check_sum_decode(uint8_t value);

/**
 * Check that given signal is in allowed range.
 *
 * @param[in] value Signal to check.
 *
 * @return true if in range, false otherwise.
 */
bool mc1_fmr_yrs1_yrs1_check_sum_is_in_range(uint8_t value);

/**
 * Encode given signal by applying scaling and offset.
 *
 * @param[in] value Signal to encode.
 *
 * @return Encoded signal.
 */
uint8_t mc1_fmr_yrs1_yrs_yaw_rate_sensor_state_encode(double value);

/**
 * Decode given signal by applying scaling and offset.
 *
 * @param[in] value Signal to decode.
 *
 * @return Decoded signal.
 */
double mc1_fmr_yrs1_yrs_yaw_rate_sensor_state_decode(uint8_t value);

/**
 * Check that given signal is in allowed range.
 *
 * @param[in] value Signal to check.
 *
 * @return true if in range, false otherwise.
 */
bool mc1_fmr_yrs1_yrs_yaw_rate_sensor_state_is_in_range(uint8_t value);

/**
 * Encode given signal by applying scaling and offset.
 *
 * @param[in] value Signal to encode.
 *
 * @return Encoded signal.
 */
uint16_t mc1_fmr_yrs1_yrs_lateral_acce_encode(double value);

/**
 * Decode given signal by applying scaling and offset.
 *
 * @param[in] value Signal to decode.
 *
 * @return Decoded signal.
 */
double mc1_fmr_yrs1_yrs_lateral_acce_decode(uint16_t value);

/**
 * Check that given signal is in allowed range.
 *
 * @param[in] value Signal to check.
 *
 * @return true if in range, false otherwise.
 */
bool mc1_fmr_yrs1_yrs_lateral_acce_is_in_range(uint16_t value);

/**
 * Encode given signal by applying scaling and offset.
 *
 * @param[in] value Signal to encode.
 *
 * @return Encoded signal.
 */
uint16_t mc1_fmr_yrs1_yrs_yaw_rate_encode(double value);

/**
 * Decode given signal by applying scaling and offset.
 *
 * @param[in] value Signal to decode.
 *
 * @return Decoded signal.
 */
double mc1_fmr_yrs1_yrs_yaw_rate_decode(uint16_t value);

/**
 * Check that given signal is in allowed range.
 *
 * @param[in] value Signal to check.
 *
 * @return true if in range, false otherwise.
 */
bool mc1_fmr_yrs1_yrs_yaw_rate_is_in_range(uint16_t value);

/**
 * Encode given signal by applying scaling and offset.
 *
 * @param[in] value Signal to encode.
 *
 * @return Encoded signal.
 */
uint8_t mc1_fmr_yrs1_yrs1_alive_counter_encode(double value);

/**
 * Decode given signal by applying scaling and offset.
 *
 * @param[in] value Signal to decode.
 *
 * @return Decoded signal.
 */
double mc1_fmr_yrs1_yrs1_alive_counter_decode(uint8_t value);

/**
 * Check that given signal is in allowed range.
 *
 * @param[in] value Signal to check.
 *
 * @return true if in range, false otherwise.
 */
bool mc1_fmr_yrs1_yrs1_alive_counter_is_in_range(uint8_t value);

/**
 * Pack message YRS2.
 *
 * @param[out] dst_p Buffer to pack the message into.
 * @param[in] src_p Data to pack.
 * @param[in] size Size of dst_p.
 *
 * @return Size of packed data, or negative error code.
 */
int mc1_fmr_yrs2_pack(
    uint8_t *dst_p,
    const struct mc1_fmr_yrs2_t *src_p,
    size_t size);

/**
 * Unpack message YRS2.
 *
 * @param[out] dst_p Object to unpack the message into.
 * @param[in] src_p Message to unpack.
 * @param[in] size Size of src_p.
 *
 * @return zero(0) or negative error code.
 */
int mc1_fmr_yrs2_unpack(
    struct mc1_fmr_yrs2_t *dst_p,
    const uint8_t *src_p,
    size_t size);

/**
 * Init message fields to default values from YRS2.
 *
 * @param[in] msg_p Message to init.
 *
 * @return zero(0) on success or (-1) in case of nullptr argument.
 */
int mc1_fmr_yrs2_init(struct mc1_fmr_yrs2_t *msg_p);

/**
 * Encode given signal by applying scaling and offset.
 *
 * @param[in] value Signal to encode.
 *
 * @return Encoded signal.
 */
uint8_t mc1_fmr_yrs2_yrs2_check_sum_encode(double value);

/**
 * Decode given signal by applying scaling and offset.
 *
 * @param[in] value Signal to decode.
 *
 * @return Decoded signal.
 */
double mc1_fmr_yrs2_yrs2_check_sum_decode(uint8_t value);

/**
 * Check that given signal is in allowed range.
 *
 * @param[in] value Signal to check.
 *
 * @return true if in range, false otherwise.
 */
bool mc1_fmr_yrs2_yrs2_check_sum_is_in_range(uint8_t value);

/**
 * Encode given signal by applying scaling and offset.
 *
 * @param[in] value Signal to encode.
 *
 * @return Encoded signal.
 */
uint16_t mc1_fmr_yrs2_yrs_longit_acce_encode(double value);

/**
 * Decode given signal by applying scaling and offset.
 *
 * @param[in] value Signal to decode.
 *
 * @return Decoded signal.
 */
double mc1_fmr_yrs2_yrs_longit_acce_decode(uint16_t value);

/**
 * Check that given signal is in allowed range.
 *
 * @param[in] value Signal to check.
 *
 * @return true if in range, false otherwise.
 */
bool mc1_fmr_yrs2_yrs_longit_acce_is_in_range(uint16_t value);

/**
 * Encode given signal by applying scaling and offset.
 *
 * @param[in] value Signal to encode.
 *
 * @return Encoded signal.
 */
uint8_t mc1_fmr_yrs2_yrs2_alive_counter_encode(double value);

/**
 * Decode given signal by applying scaling and offset.
 *
 * @param[in] value Signal to decode.
 *
 * @return Decoded signal.
 */
double mc1_fmr_yrs2_yrs2_alive_counter_decode(uint8_t value);

/**
 * Check that given signal is in allowed range.
 *
 * @param[in] value Signal to check.
 *
 * @return true if in range, false otherwise.
 */
bool mc1_fmr_yrs2_yrs2_alive_counter_is_in_range(uint8_t value);

/**
 * Pack message SAS_Status.
 *
 * @param[out] dst_p Buffer to pack the message into.
 * @param[in] src_p Data to pack.
 * @param[in] size Size of dst_p.
 *
 * @return Size of packed data, or negative error code.
 */
int mc1_fmr_sas_status_pack(
    uint8_t *dst_p,
    const struct mc1_fmr_sas_status_t *src_p,
    size_t size);

/**
 * Unpack message SAS_Status.
 *
 * @param[out] dst_p Object to unpack the message into.
 * @param[in] src_p Message to unpack.
 * @param[in] size Size of src_p.
 *
 * @return zero(0) or negative error code.
 */
int mc1_fmr_sas_status_unpack(
    struct mc1_fmr_sas_status_t *dst_p,
    const uint8_t *src_p,
    size_t size);

/**
 * Init message fields to default values from SAS_Status.
 *
 * @param[in] msg_p Message to init.
 *
 * @return zero(0) on success or (-1) in case of nullptr argument.
 */
int mc1_fmr_sas_status_init(struct mc1_fmr_sas_status_t *msg_p);

/**
 * Encode given signal by applying scaling and offset.
 *
 * @param[in] value Signal to encode.
 *
 * @return Encoded signal.
 */
int16_t mc1_fmr_sas_status_sas_steer_wheel_angle_encode(double value);

/**
 * Decode given signal by applying scaling and offset.
 *
 * @param[in] value Signal to decode.
 *
 * @return Decoded signal.
 */
double mc1_fmr_sas_status_sas_steer_wheel_angle_decode(int16_t value);

/**
 * Check that given signal is in allowed range.
 *
 * @param[in] value Signal to check.
 *
 * @return true if in range, false otherwise.
 */
bool mc1_fmr_sas_status_sas_steer_wheel_angle_is_in_range(int16_t value);

/**
 * Encode given signal by applying scaling and offset.
 *
 * @param[in] value Signal to encode.
 *
 * @return Encoded signal.
 */
uint8_t mc1_fmr_sas_status_sas_failure_sts_encode(double value);

/**
 * Decode given signal by applying scaling and offset.
 *
 * @param[in] value Signal to decode.
 *
 * @return Decoded signal.
 */
double mc1_fmr_sas_status_sas_failure_sts_decode(uint8_t value);

/**
 * Check that given signal is in allowed range.
 *
 * @param[in] value Signal to check.
 *
 * @return true if in range, false otherwise.
 */
bool mc1_fmr_sas_status_sas_failure_sts_is_in_range(uint8_t value);

/**
 * Encode given signal by applying scaling and offset.
 *
 * @param[in] value Signal to encode.
 *
 * @return Encoded signal.
 */
uint8_t mc1_fmr_sas_status_sas_status_alive_counter_encode(double value);

/**
 * Decode given signal by applying scaling and offset.
 *
 * @param[in] value Signal to decode.
 *
 * @return Decoded signal.
 */
double mc1_fmr_sas_status_sas_status_alive_counter_decode(uint8_t value);

/**
 * Check that given signal is in allowed range.
 *
 * @param[in] value Signal to check.
 *
 * @return true if in range, false otherwise.
 */
bool mc1_fmr_sas_status_sas_status_alive_counter_is_in_range(uint8_t value);

/**
 * Encode given signal by applying scaling and offset.
 *
 * @param[in] value Signal to encode.
 *
 * @return Encoded signal.
 */
uint8_t mc1_fmr_sas_status_sas_status_check_sum_encode(double value);

/**
 * Decode given signal by applying scaling and offset.
 *
 * @param[in] value Signal to decode.
 *
 * @return Decoded signal.
 */
double mc1_fmr_sas_status_sas_status_check_sum_decode(uint8_t value);

/**
 * Check that given signal is in allowed range.
 *
 * @param[in] value Signal to check.
 *
 * @return true if in range, false otherwise.
 */
bool mc1_fmr_sas_status_sas_status_check_sum_is_in_range(uint8_t value);

/**
 * Pack message ESC_Status.
 *
 * @param[out] dst_p Buffer to pack the message into.
 * @param[in] src_p Data to pack.
 * @param[in] size Size of dst_p.
 *
 * @return Size of packed data, or negative error code.
 */
int mc1_fmr_esc_status_pack(
    uint8_t *dst_p,
    const struct mc1_fmr_esc_status_t *src_p,
    size_t size);

/**
 * Unpack message ESC_Status.
 *
 * @param[out] dst_p Object to unpack the message into.
 * @param[in] src_p Message to unpack.
 * @param[in] size Size of src_p.
 *
 * @return zero(0) or negative error code.
 */
int mc1_fmr_esc_status_unpack(
    struct mc1_fmr_esc_status_t *dst_p,
    const uint8_t *src_p,
    size_t size);

/**
 * Init message fields to default values from ESC_Status.
 *
 * @param[in] msg_p Message to init.
 *
 * @return zero(0) on success or (-1) in case of nullptr argument.
 */
int mc1_fmr_esc_status_init(struct mc1_fmr_esc_status_t *msg_p);

/**
 * Encode given signal by applying scaling and offset.
 *
 * @param[in] value Signal to encode.
 *
 * @return Encoded signal.
 */
uint16_t mc1_fmr_esc_status_esc_vehicle_speed_encode(double value);

/**
 * Decode given signal by applying scaling and offset.
 *
 * @param[in] value Signal to decode.
 *
 * @return Decoded signal.
 */
double mc1_fmr_esc_status_esc_vehicle_speed_decode(uint16_t value);

/**
 * Check that given signal is in allowed range.
 *
 * @param[in] value Signal to check.
 *
 * @return true if in range, false otherwise.
 */
bool mc1_fmr_esc_status_esc_vehicle_speed_is_in_range(uint16_t value);

/**
 * Encode given signal by applying scaling and offset.
 *
 * @param[in] value Signal to encode.
 *
 * @return Encoded signal.
 */
uint8_t mc1_fmr_esc_status_esc_vehicle_speed_invalid_encode(double value);

/**
 * Decode given signal by applying scaling and offset.
 *
 * @param[in] value Signal to decode.
 *
 * @return Decoded signal.
 */
double mc1_fmr_esc_status_esc_vehicle_speed_invalid_decode(uint8_t value);

/**
 * Check that given signal is in allowed range.
 *
 * @param[in] value Signal to check.
 *
 * @return true if in range, false otherwise.
 */
bool mc1_fmr_esc_status_esc_vehicle_speed_invalid_is_in_range(uint8_t value);

/**
 * Encode given signal by applying scaling and offset.
 *
 * @param[in] value Signal to encode.
 *
 * @return Encoded signal.
 */
uint8_t mc1_fmr_esc_status_esc_status_alive_counter_encode(double value);

/**
 * Decode given signal by applying scaling and offset.
 *
 * @param[in] value Signal to decode.
 *
 * @return Decoded signal.
 */
double mc1_fmr_esc_status_esc_status_alive_counter_decode(uint8_t value);

/**
 * Check that given signal is in allowed range.
 *
 * @param[in] value Signal to check.
 *
 * @return true if in range, false otherwise.
 */
bool mc1_fmr_esc_status_esc_status_alive_counter_is_in_range(uint8_t value);

/**
 * Encode given signal by applying scaling and offset.
 *
 * @param[in] value Signal to encode.
 *
 * @return Encoded signal.
 */
uint8_t mc1_fmr_esc_status_esc_status_check_sum_encode(double value);

/**
 * Decode given signal by applying scaling and offset.
 *
 * @param[in] value Signal to decode.
 *
 * @return Decoded signal.
 */
double mc1_fmr_esc_status_esc_status_check_sum_decode(uint8_t value);

/**
 * Check that given signal is in allowed range.
 *
 * @param[in] value Signal to check.
 *
 * @return true if in range, false otherwise.
 */
bool mc1_fmr_esc_status_esc_status_check_sum_is_in_range(uint8_t value);

/**
 * Pack message TCU_Status.
 *
 * @param[out] dst_p Buffer to pack the message into.
 * @param[in] src_p Data to pack.
 * @param[in] size Size of dst_p.
 *
 * @return Size of packed data, or negative error code.
 */
int mc1_fmr_tcu_status_pack(
    uint8_t *dst_p,
    const struct mc1_fmr_tcu_status_t *src_p,
    size_t size);

/**
 * Unpack message TCU_Status.
 *
 * @param[out] dst_p Object to unpack the message into.
 * @param[in] src_p Message to unpack.
 * @param[in] size Size of src_p.
 *
 * @return zero(0) or negative error code.
 */
int mc1_fmr_tcu_status_unpack(
    struct mc1_fmr_tcu_status_t *dst_p,
    const uint8_t *src_p,
    size_t size);

/**
 * Init message fields to default values from TCU_Status.
 *
 * @param[in] msg_p Message to init.
 *
 * @return zero(0) on success or (-1) in case of nullptr argument.
 */
int mc1_fmr_tcu_status_init(struct mc1_fmr_tcu_status_t *msg_p);

/**
 * Encode given signal by applying scaling and offset.
 *
 * @param[in] value Signal to encode.
 *
 * @return Encoded signal.
 */
uint8_t mc1_fmr_tcu_status_tcu_current_gear_position_encode(double value);

/**
 * Decode given signal by applying scaling and offset.
 *
 * @param[in] value Signal to decode.
 *
 * @return Decoded signal.
 */
double mc1_fmr_tcu_status_tcu_current_gear_position_decode(uint8_t value);

/**
 * Check that given signal is in allowed range.
 *
 * @param[in] value Signal to check.
 *
 * @return true if in range, false otherwise.
 */
bool mc1_fmr_tcu_status_tcu_current_gear_position_is_in_range(uint8_t value);

/**
 * Encode given signal by applying scaling and offset.
 *
 * @param[in] value Signal to encode.
 *
 * @return Encoded signal.
 */
uint8_t mc1_fmr_tcu_status_tcu_status_alive_counter_encode(double value);

/**
 * Decode given signal by applying scaling and offset.
 *
 * @param[in] value Signal to decode.
 *
 * @return Decoded signal.
 */
double mc1_fmr_tcu_status_tcu_status_alive_counter_decode(uint8_t value);

/**
 * Check that given signal is in allowed range.
 *
 * @param[in] value Signal to check.
 *
 * @return true if in range, false otherwise.
 */
bool mc1_fmr_tcu_status_tcu_status_alive_counter_is_in_range(uint8_t value);

/**
 * Encode given signal by applying scaling and offset.
 *
 * @param[in] value Signal to encode.
 *
 * @return Encoded signal.
 */
uint8_t mc1_fmr_tcu_status_tcu_status_check_sum_encode(double value);

/**
 * Decode given signal by applying scaling and offset.
 *
 * @param[in] value Signal to decode.
 *
 * @return Decoded signal.
 */
double mc1_fmr_tcu_status_tcu_status_check_sum_decode(uint8_t value);

/**
 * Check that given signal is in allowed range.
 *
 * @param[in] value Signal to check.
 *
 * @return true if in range, false otherwise.
 */
bool mc1_fmr_tcu_status_tcu_status_check_sum_is_in_range(uint8_t value);

/**
 * Pack message RS_Obj_00_Part01.
 *
 * @param[out] dst_p Buffer to pack the message into.
 * @param[in] src_p Data to pack.
 * @param[in] size Size of dst_p.
 *
 * @return Size of packed data, or negative error code.
 */
int mc1_fmr_rs_obj_00_part01_pack(
    uint8_t *dst_p,
    const struct mc1_fmr_rs_obj_00_part01_t *src_p,
    size_t size);

/**
 * Unpack message RS_Obj_00_Part01.
 *
 * @param[out] dst_p Object to unpack the message into.
 * @param[in] src_p Message to unpack.
 * @param[in] size Size of src_p.
 *
 * @return zero(0) or negative error code.
 */
int mc1_fmr_rs_obj_00_part01_unpack(
    struct mc1_fmr_rs_obj_00_part01_t *dst_p,
    const uint8_t *src_p,
    size_t size);

/**
 * Init message fields to default values from RS_Obj_00_Part01.
 *
 * @param[in] msg_p Message to init.
 *
 * @return zero(0) on success or (-1) in case of nullptr argument.
 */
int mc1_fmr_rs_obj_00_part01_init(struct mc1_fmr_rs_obj_00_part01_t *msg_p);

/**
 * Encode given signal by applying scaling and offset.
 *
 * @param[in] value Signal to encode.
 *
 * @return Encoded signal.
 */
uint16_t mc1_fmr_rs_obj_00_part01_rs_obj00_id_encode(double value);

/**
 * Decode given signal by applying scaling and offset.
 *
 * @param[in] value Signal to decode.
 *
 * @return Decoded signal.
 */
double mc1_fmr_rs_obj_00_part01_rs_obj00_id_decode(uint16_t value);

/**
 * Check that given signal is in allowed range.
 *
 * @param[in] value Signal to check.
 *
 * @return true if in range, false otherwise.
 */
bool mc1_fmr_rs_obj_00_part01_rs_obj00_id_is_in_range(uint16_t value);

/**
 * Encode given signal by applying scaling and offset.
 *
 * @param[in] value Signal to encode.
 *
 * @return Encoded signal.
 */
uint8_t mc1_fmr_rs_obj_00_part01_rs_obj00_motion_pattern_encode(double value);

/**
 * Decode given signal by applying scaling and offset.
 *
 * @param[in] value Signal to decode.
 *
 * @return Decoded signal.
 */
double mc1_fmr_rs_obj_00_part01_rs_obj00_motion_pattern_decode(uint8_t value);

/**
 * Check that given signal is in allowed range.
 *
 * @param[in] value Signal to check.
 *
 * @return true if in range, false otherwise.
 */
bool mc1_fmr_rs_obj_00_part01_rs_obj00_motion_pattern_is_in_range(uint8_t value);

/**
 * Encode given signal by applying scaling and offset.
 *
 * @param[in] value Signal to encode.
 *
 * @return Encoded signal.
 */
uint16_t mc1_fmr_rs_obj_00_part01_rs_obj00_x_pos_encode(double value);

/**
 * Decode given signal by applying scaling and offset.
 *
 * @param[in] value Signal to decode.
 *
 * @return Decoded signal.
 */
double mc1_fmr_rs_obj_00_part01_rs_obj00_x_pos_decode(uint16_t value);

/**
 * Check that given signal is in allowed range.
 *
 * @param[in] value Signal to check.
 *
 * @return true if in range, false otherwise.
 */
bool mc1_fmr_rs_obj_00_part01_rs_obj00_x_pos_is_in_range(uint16_t value);

/**
 * Encode given signal by applying scaling and offset.
 *
 * @param[in] value Signal to encode.
 *
 * @return Encoded signal.
 */
uint8_t mc1_fmr_rs_obj_00_part01_rs_obj00_elev_class_encode(double value);

/**
 * Decode given signal by applying scaling and offset.
 *
 * @param[in] value Signal to decode.
 *
 * @return Decoded signal.
 */
double mc1_fmr_rs_obj_00_part01_rs_obj00_elev_class_decode(uint8_t value);

/**
 * Check that given signal is in allowed range.
 *
 * @param[in] value Signal to check.
 *
 * @return true if in range, false otherwise.
 */
bool mc1_fmr_rs_obj_00_part01_rs_obj00_elev_class_is_in_range(uint8_t value);

/**
 * Encode given signal by applying scaling and offset.
 *
 * @param[in] value Signal to encode.
 *
 * @return Encoded signal.
 */
uint16_t mc1_fmr_rs_obj_00_part01_rs_obj00_y_pos_encode(double value);

/**
 * Decode given signal by applying scaling and offset.
 *
 * @param[in] value Signal to decode.
 *
 * @return Decoded signal.
 */
double mc1_fmr_rs_obj_00_part01_rs_obj00_y_pos_decode(uint16_t value);

/**
 * Check that given signal is in allowed range.
 *
 * @param[in] value Signal to check.
 *
 * @return true if in range, false otherwise.
 */
bool mc1_fmr_rs_obj_00_part01_rs_obj00_y_pos_is_in_range(uint16_t value);

/**
 * Encode given signal by applying scaling and offset.
 *
 * @param[in] value Signal to encode.
 *
 * @return Encoded signal.
 */
uint8_t mc1_fmr_rs_obj_00_part01_rs_obj00_elev_conf_encode(double value);

/**
 * Decode given signal by applying scaling and offset.
 *
 * @param[in] value Signal to decode.
 *
 * @return Decoded signal.
 */
double mc1_fmr_rs_obj_00_part01_rs_obj00_elev_conf_decode(uint8_t value);

/**
 * Check that given signal is in allowed range.
 *
 * @param[in] value Signal to check.
 *
 * @return true if in range, false otherwise.
 */
bool mc1_fmr_rs_obj_00_part01_rs_obj00_elev_conf_is_in_range(uint8_t value);

/**
 * Encode given signal by applying scaling and offset.
 *
 * @param[in] value Signal to encode.
 *
 * @return Encoded signal.
 */
uint8_t mc1_fmr_rs_obj_00_part01_rs_obj00_msg01_alive_counter_encode(double value);

/**
 * Decode given signal by applying scaling and offset.
 *
 * @param[in] value Signal to decode.
 *
 * @return Decoded signal.
 */
double mc1_fmr_rs_obj_00_part01_rs_obj00_msg01_alive_counter_decode(uint8_t value);

/**
 * Check that given signal is in allowed range.
 *
 * @param[in] value Signal to check.
 *
 * @return true if in range, false otherwise.
 */
bool mc1_fmr_rs_obj_00_part01_rs_obj00_msg01_alive_counter_is_in_range(uint8_t value);

/**
 * Encode given signal by applying scaling and offset.
 *
 * @param[in] value Signal to encode.
 *
 * @return Encoded signal.
 */
uint8_t mc1_fmr_rs_obj_00_part01_rs_obj00_type_encode(double value);

/**
 * Decode given signal by applying scaling and offset.
 *
 * @param[in] value Signal to decode.
 *
 * @return Decoded signal.
 */
double mc1_fmr_rs_obj_00_part01_rs_obj00_type_decode(uint8_t value);

/**
 * Check that given signal is in allowed range.
 *
 * @param[in] value Signal to check.
 *
 * @return true if in range, false otherwise.
 */
bool mc1_fmr_rs_obj_00_part01_rs_obj00_type_is_in_range(uint8_t value);

/**
 * Encode given signal by applying scaling and offset.
 *
 * @param[in] value Signal to encode.
 *
 * @return Encoded signal.
 */
uint8_t mc1_fmr_rs_obj_00_part01_rs_obj00_valid_flag_encode(double value);

/**
 * Decode given signal by applying scaling and offset.
 *
 * @param[in] value Signal to decode.
 *
 * @return Decoded signal.
 */
double mc1_fmr_rs_obj_00_part01_rs_obj00_valid_flag_decode(uint8_t value);

/**
 * Check that given signal is in allowed range.
 *
 * @param[in] value Signal to check.
 *
 * @return true if in range, false otherwise.
 */
bool mc1_fmr_rs_obj_00_part01_rs_obj00_valid_flag_is_in_range(uint8_t value);

/**
 * Encode given signal by applying scaling and offset.
 *
 * @param[in] value Signal to encode.
 *
 * @return Encoded signal.
 */
uint8_t mc1_fmr_rs_obj_00_part01_rs_obj00_meas_flag_encode(double value);

/**
 * Decode given signal by applying scaling and offset.
 *
 * @param[in] value Signal to decode.
 *
 * @return Decoded signal.
 */
double mc1_fmr_rs_obj_00_part01_rs_obj00_meas_flag_decode(uint8_t value);

/**
 * Check that given signal is in allowed range.
 *
 * @param[in] value Signal to check.
 *
 * @return true if in range, false otherwise.
 */
bool mc1_fmr_rs_obj_00_part01_rs_obj00_meas_flag_is_in_range(uint8_t value);

/**
 * Encode given signal by applying scaling and offset.
 *
 * @param[in] value Signal to encode.
 *
 * @return Encoded signal.
 */
uint8_t mc1_fmr_rs_obj_00_part01_rs_obj00_msg01_check_sum_encode(double value);

/**
 * Decode given signal by applying scaling and offset.
 *
 * @param[in] value Signal to decode.
 *
 * @return Decoded signal.
 */
double mc1_fmr_rs_obj_00_part01_rs_obj00_msg01_check_sum_decode(uint8_t value);

/**
 * Check that given signal is in allowed range.
 *
 * @param[in] value Signal to check.
 *
 * @return true if in range, false otherwise.
 */
bool mc1_fmr_rs_obj_00_part01_rs_obj00_msg01_check_sum_is_in_range(uint8_t value);

/**
 * Pack message RS_Obj_00_Part02.
 *
 * @param[out] dst_p Buffer to pack the message into.
 * @param[in] src_p Data to pack.
 * @param[in] size Size of dst_p.
 *
 * @return Size of packed data, or negative error code.
 */
int mc1_fmr_rs_obj_00_part02_pack(
    uint8_t *dst_p,
    const struct mc1_fmr_rs_obj_00_part02_t *src_p,
    size_t size);

/**
 * Unpack message RS_Obj_00_Part02.
 *
 * @param[out] dst_p Object to unpack the message into.
 * @param[in] src_p Message to unpack.
 * @param[in] size Size of src_p.
 *
 * @return zero(0) or negative error code.
 */
int mc1_fmr_rs_obj_00_part02_unpack(
    struct mc1_fmr_rs_obj_00_part02_t *dst_p,
    const uint8_t *src_p,
    size_t size);

/**
 * Init message fields to default values from RS_Obj_00_Part02.
 *
 * @param[in] msg_p Message to init.
 *
 * @return zero(0) on success or (-1) in case of nullptr argument.
 */
int mc1_fmr_rs_obj_00_part02_init(struct mc1_fmr_rs_obj_00_part02_t *msg_p);

/**
 * Encode given signal by applying scaling and offset.
 *
 * @param[in] value Signal to encode.
 *
 * @return Encoded signal.
 */
uint8_t mc1_fmr_rs_obj_00_part02_rs_obj00_x_acc_absolute_encode(double value);

/**
 * Decode given signal by applying scaling and offset.
 *
 * @param[in] value Signal to decode.
 *
 * @return Decoded signal.
 */
double mc1_fmr_rs_obj_00_part02_rs_obj00_x_acc_absolute_decode(uint8_t value);

/**
 * Check that given signal is in allowed range.
 *
 * @param[in] value Signal to check.
 *
 * @return true if in range, false otherwise.
 */
bool mc1_fmr_rs_obj_00_part02_rs_obj00_x_acc_absolute_is_in_range(uint8_t value);

/**
 * Encode given signal by applying scaling and offset.
 *
 * @param[in] value Signal to encode.
 *
 * @return Encoded signal.
 */
uint8_t mc1_fmr_rs_obj_00_part02_rs_obj00_y_acc_absolute_encode(double value);

/**
 * Decode given signal by applying scaling and offset.
 *
 * @param[in] value Signal to decode.
 *
 * @return Decoded signal.
 */
double mc1_fmr_rs_obj_00_part02_rs_obj00_y_acc_absolute_decode(uint8_t value);

/**
 * Check that given signal is in allowed range.
 *
 * @param[in] value Signal to check.
 *
 * @return true if in range, false otherwise.
 */
bool mc1_fmr_rs_obj_00_part02_rs_obj00_y_acc_absolute_is_in_range(uint8_t value);

/**
 * Encode given signal by applying scaling and offset.
 *
 * @param[in] value Signal to encode.
 *
 * @return Encoded signal.
 */
int8_t mc1_fmr_rs_obj_00_part02_rs_obj00_heading_encode(double value);

/**
 * Decode given signal by applying scaling and offset.
 *
 * @param[in] value Signal to decode.
 *
 * @return Decoded signal.
 */
double mc1_fmr_rs_obj_00_part02_rs_obj00_heading_decode(int8_t value);

/**
 * Check that given signal is in allowed range.
 *
 * @param[in] value Signal to check.
 *
 * @return true if in range, false otherwise.
 */
bool mc1_fmr_rs_obj_00_part02_rs_obj00_heading_is_in_range(int8_t value);

/**
 * Encode given signal by applying scaling and offset.
 *
 * @param[in] value Signal to encode.
 *
 * @return Encoded signal.
 */
uint8_t mc1_fmr_rs_obj_00_part02_rs_obj00_ctrk_ind_encode(double value);

/**
 * Decode given signal by applying scaling and offset.
 *
 * @param[in] value Signal to decode.
 *
 * @return Decoded signal.
 */
double mc1_fmr_rs_obj_00_part02_rs_obj00_ctrk_ind_decode(uint8_t value);

/**
 * Check that given signal is in allowed range.
 *
 * @param[in] value Signal to check.
 *
 * @return true if in range, false otherwise.
 */
bool mc1_fmr_rs_obj_00_part02_rs_obj00_ctrk_ind_is_in_range(uint8_t value);

/**
 * Encode given signal by applying scaling and offset.
 *
 * @param[in] value Signal to encode.
 *
 * @return Encoded signal.
 */
uint16_t mc1_fmr_rs_obj_00_part02_rs_obj00_x_vel_absolute_encode(double value);

/**
 * Decode given signal by applying scaling and offset.
 *
 * @param[in] value Signal to decode.
 *
 * @return Decoded signal.
 */
double mc1_fmr_rs_obj_00_part02_rs_obj00_x_vel_absolute_decode(uint16_t value);

/**
 * Check that given signal is in allowed range.
 *
 * @param[in] value Signal to check.
 *
 * @return true if in range, false otherwise.
 */
bool mc1_fmr_rs_obj_00_part02_rs_obj00_x_vel_absolute_is_in_range(uint16_t value);

/**
 * Encode given signal by applying scaling and offset.
 *
 * @param[in] value Signal to encode.
 *
 * @return Encoded signal.
 */
uint16_t mc1_fmr_rs_obj_00_part02_rs_obj00_y_vel_absolute_encode(double value);

/**
 * Decode given signal by applying scaling and offset.
 *
 * @param[in] value Signal to decode.
 *
 * @return Decoded signal.
 */
double mc1_fmr_rs_obj_00_part02_rs_obj00_y_vel_absolute_decode(uint16_t value);

/**
 * Check that given signal is in allowed range.
 *
 * @param[in] value Signal to check.
 *
 * @return true if in range, false otherwise.
 */
bool mc1_fmr_rs_obj_00_part02_rs_obj00_y_vel_absolute_is_in_range(uint16_t value);

/**
 * Encode given signal by applying scaling and offset.
 *
 * @param[in] value Signal to encode.
 *
 * @return Encoded signal.
 */
uint8_t mc1_fmr_rs_obj_00_part02_rs_obj00_classconf_encode(double value);

/**
 * Decode given signal by applying scaling and offset.
 *
 * @param[in] value Signal to decode.
 *
 * @return Decoded signal.
 */
double mc1_fmr_rs_obj_00_part02_rs_obj00_classconf_decode(uint8_t value);

/**
 * Check that given signal is in allowed range.
 *
 * @param[in] value Signal to check.
 *
 * @return true if in range, false otherwise.
 */
bool mc1_fmr_rs_obj_00_part02_rs_obj00_classconf_is_in_range(uint8_t value);

/**
 * Encode given signal by applying scaling and offset.
 *
 * @param[in] value Signal to encode.
 *
 * @return Encoded signal.
 */
uint8_t mc1_fmr_rs_obj_00_part02_rs_obj00_msg02_alive_counter_encode(double value);

/**
 * Decode given signal by applying scaling and offset.
 *
 * @param[in] value Signal to decode.
 *
 * @return Decoded signal.
 */
double mc1_fmr_rs_obj_00_part02_rs_obj00_msg02_alive_counter_decode(uint8_t value);

/**
 * Check that given signal is in allowed range.
 *
 * @param[in] value Signal to check.
 *
 * @return true if in range, false otherwise.
 */
bool mc1_fmr_rs_obj_00_part02_rs_obj00_msg02_alive_counter_is_in_range(uint8_t value);

/**
 * Encode given signal by applying scaling and offset.
 *
 * @param[in] value Signal to encode.
 *
 * @return Encoded signal.
 */
uint8_t mc1_fmr_rs_obj_00_part02_rs_obj00_msg02_check_sum_encode(double value);

/**
 * Decode given signal by applying scaling and offset.
 *
 * @param[in] value Signal to decode.
 *
 * @return Decoded signal.
 */
double mc1_fmr_rs_obj_00_part02_rs_obj00_msg02_check_sum_decode(uint8_t value);

/**
 * Check that given signal is in allowed range.
 *
 * @param[in] value Signal to check.
 *
 * @return true if in range, false otherwise.
 */
bool mc1_fmr_rs_obj_00_part02_rs_obj00_msg02_check_sum_is_in_range(uint8_t value);

/**
 * Pack message RS_Obj_00_Part03.
 *
 * @param[out] dst_p Buffer to pack the message into.
 * @param[in] src_p Data to pack.
 * @param[in] size Size of dst_p.
 *
 * @return Size of packed data, or negative error code.
 */
int mc1_fmr_rs_obj_00_part03_pack(
    uint8_t *dst_p,
    const struct mc1_fmr_rs_obj_00_part03_t *src_p,
    size_t size);

/**
 * Unpack message RS_Obj_00_Part03.
 *
 * @param[out] dst_p Object to unpack the message into.
 * @param[in] src_p Message to unpack.
 * @param[in] size Size of src_p.
 *
 * @return zero(0) or negative error code.
 */
int mc1_fmr_rs_obj_00_part03_unpack(
    struct mc1_fmr_rs_obj_00_part03_t *dst_p,
    const uint8_t *src_p,
    size_t size);

/**
 * Init message fields to default values from RS_Obj_00_Part03.
 *
 * @param[in] msg_p Message to init.
 *
 * @return zero(0) on success or (-1) in case of nullptr argument.
 */
int mc1_fmr_rs_obj_00_part03_init(struct mc1_fmr_rs_obj_00_part03_t *msg_p);

/**
 * Encode given signal by applying scaling and offset.
 *
 * @param[in] value Signal to encode.
 *
 * @return Encoded signal.
 */
uint8_t mc1_fmr_rs_obj_00_part03_rs_obj00_x_pos_stdev_encode(double value);

/**
 * Decode given signal by applying scaling and offset.
 *
 * @param[in] value Signal to decode.
 *
 * @return Decoded signal.
 */
double mc1_fmr_rs_obj_00_part03_rs_obj00_x_pos_stdev_decode(uint8_t value);

/**
 * Check that given signal is in allowed range.
 *
 * @param[in] value Signal to check.
 *
 * @return true if in range, false otherwise.
 */
bool mc1_fmr_rs_obj_00_part03_rs_obj00_x_pos_stdev_is_in_range(uint8_t value);

/**
 * Encode given signal by applying scaling and offset.
 *
 * @param[in] value Signal to encode.
 *
 * @return Encoded signal.
 */
uint8_t mc1_fmr_rs_obj_00_part03_rs_obj00_y_pos_stdev_encode(double value);

/**
 * Decode given signal by applying scaling and offset.
 *
 * @param[in] value Signal to decode.
 *
 * @return Decoded signal.
 */
double mc1_fmr_rs_obj_00_part03_rs_obj00_y_pos_stdev_decode(uint8_t value);

/**
 * Check that given signal is in allowed range.
 *
 * @param[in] value Signal to check.
 *
 * @return true if in range, false otherwise.
 */
bool mc1_fmr_rs_obj_00_part03_rs_obj00_y_pos_stdev_is_in_range(uint8_t value);

/**
 * Encode given signal by applying scaling and offset.
 *
 * @param[in] value Signal to encode.
 *
 * @return Encoded signal.
 */
uint8_t mc1_fmr_rs_obj_00_part03_rs_obj00_x_vel_rel_stdev_encode(double value);

/**
 * Decode given signal by applying scaling and offset.
 *
 * @param[in] value Signal to decode.
 *
 * @return Decoded signal.
 */
double mc1_fmr_rs_obj_00_part03_rs_obj00_x_vel_rel_stdev_decode(uint8_t value);

/**
 * Check that given signal is in allowed range.
 *
 * @param[in] value Signal to check.
 *
 * @return true if in range, false otherwise.
 */
bool mc1_fmr_rs_obj_00_part03_rs_obj00_x_vel_rel_stdev_is_in_range(uint8_t value);

/**
 * Encode given signal by applying scaling and offset.
 *
 * @param[in] value Signal to encode.
 *
 * @return Encoded signal.
 */
uint8_t mc1_fmr_rs_obj_00_part03_rs_obj00_y_vel_rel_stdev_encode(double value);

/**
 * Decode given signal by applying scaling and offset.
 *
 * @param[in] value Signal to decode.
 *
 * @return Decoded signal.
 */
double mc1_fmr_rs_obj_00_part03_rs_obj00_y_vel_rel_stdev_decode(uint8_t value);

/**
 * Check that given signal is in allowed range.
 *
 * @param[in] value Signal to check.
 *
 * @return true if in range, false otherwise.
 */
bool mc1_fmr_rs_obj_00_part03_rs_obj00_y_vel_rel_stdev_is_in_range(uint8_t value);

/**
 * Encode given signal by applying scaling and offset.
 *
 * @param[in] value Signal to encode.
 *
 * @return Encoded signal.
 */
uint8_t mc1_fmr_rs_obj_00_part03_rs_obj00_x_acc_rel_stdev_encode(double value);

/**
 * Decode given signal by applying scaling and offset.
 *
 * @param[in] value Signal to decode.
 *
 * @return Decoded signal.
 */
double mc1_fmr_rs_obj_00_part03_rs_obj00_x_acc_rel_stdev_decode(uint8_t value);

/**
 * Check that given signal is in allowed range.
 *
 * @param[in] value Signal to check.
 *
 * @return true if in range, false otherwise.
 */
bool mc1_fmr_rs_obj_00_part03_rs_obj00_x_acc_rel_stdev_is_in_range(uint8_t value);

/**
 * Encode given signal by applying scaling and offset.
 *
 * @param[in] value Signal to encode.
 *
 * @return Encoded signal.
 */
uint8_t mc1_fmr_rs_obj_00_part03_rs_obj00_y_acc_rel_stdev_encode(double value);

/**
 * Decode given signal by applying scaling and offset.
 *
 * @param[in] value Signal to decode.
 *
 * @return Decoded signal.
 */
double mc1_fmr_rs_obj_00_part03_rs_obj00_y_acc_rel_stdev_decode(uint8_t value);

/**
 * Check that given signal is in allowed range.
 *
 * @param[in] value Signal to check.
 *
 * @return true if in range, false otherwise.
 */
bool mc1_fmr_rs_obj_00_part03_rs_obj00_y_acc_rel_stdev_is_in_range(uint8_t value);

/**
 * Encode given signal by applying scaling and offset.
 *
 * @param[in] value Signal to encode.
 *
 * @return Encoded signal.
 */
uint8_t mc1_fmr_rs_obj_00_part03_rs_obj00_exst_prob_encode(double value);

/**
 * Decode given signal by applying scaling and offset.
 *
 * @param[in] value Signal to decode.
 *
 * @return Decoded signal.
 */
double mc1_fmr_rs_obj_00_part03_rs_obj00_exst_prob_decode(uint8_t value);

/**
 * Check that given signal is in allowed range.
 *
 * @param[in] value Signal to check.
 *
 * @return true if in range, false otherwise.
 */
bool mc1_fmr_rs_obj_00_part03_rs_obj00_exst_prob_is_in_range(uint8_t value);

/**
 * Encode given signal by applying scaling and offset.
 *
 * @param[in] value Signal to encode.
 *
 * @return Encoded signal.
 */
uint8_t mc1_fmr_rs_obj_00_part03_rs_obj00_msg03_alive_counter_encode(double value);

/**
 * Decode given signal by applying scaling and offset.
 *
 * @param[in] value Signal to decode.
 *
 * @return Decoded signal.
 */
double mc1_fmr_rs_obj_00_part03_rs_obj00_msg03_alive_counter_decode(uint8_t value);

/**
 * Check that given signal is in allowed range.
 *
 * @param[in] value Signal to check.
 *
 * @return true if in range, false otherwise.
 */
bool mc1_fmr_rs_obj_00_part03_rs_obj00_msg03_alive_counter_is_in_range(uint8_t value);

/**
 * Encode given signal by applying scaling and offset.
 *
 * @param[in] value Signal to encode.
 *
 * @return Encoded signal.
 */
uint8_t mc1_fmr_rs_obj_00_part03_rs_obj00_msg03_check_sum_encode(double value);

/**
 * Decode given signal by applying scaling and offset.
 *
 * @param[in] value Signal to decode.
 *
 * @return Decoded signal.
 */
double mc1_fmr_rs_obj_00_part03_rs_obj00_msg03_check_sum_decode(uint8_t value);

/**
 * Check that given signal is in allowed range.
 *
 * @param[in] value Signal to check.
 *
 * @return true if in range, false otherwise.
 */
bool mc1_fmr_rs_obj_00_part03_rs_obj00_msg03_check_sum_is_in_range(uint8_t value);


#ifdef __cplusplus
}
#endif

#endif
